Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / arrays-and-vectors / mono-array2.sig
1 signature MONO_ARRAY2 =
2 sig
3 eqtype array
4
5 type elem
6 type vector
7
8 type region = {base: array,
9 row: int,
10 col: int,
11 nrows: int option,
12 ncols: int option}
13
14 datatype traversal = datatype Array2.traversal
15
16 val app: traversal -> (elem -> unit) -> array -> unit
17 val appi: traversal -> (int * int * elem -> unit) -> region -> unit
18 val array: int * int * elem -> array
19 val column: array * int -> vector
20 val copy: {src: region, dst: array, dst_row: int, dst_col: int} -> unit
21 val dimensions: array -> int * int
22 val fold: traversal -> (elem * 'b -> 'b) -> 'b -> array -> 'b
23 val foldi: traversal -> (int * int * elem * 'b -> 'b) -> 'b -> region -> 'b
24 val fromList: elem list list -> array
25 val modify: traversal -> (elem -> elem) -> array -> unit
26 val modifyi: traversal -> (int * int * elem -> elem) -> region -> unit
27 val nCols: array -> int
28 val nRows: array -> int
29 val row: array * int -> vector
30 val sub: array * int * int -> elem
31 val tabulate: traversal -> int * int * (int * int -> elem) -> array
32 val update: array * int * int * elem -> unit
33 end