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