Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / libs / basis-1997 / arrays-and-vectors / mono-array.sig
1 signature MONO_ARRAY_1997 =
2 sig
3 eqtype array
4 type elem
5 structure Vector: MONO_VECTOR_1997
6 val maxLen: int
7 val array: (int * elem) -> array
8 val fromList: elem list -> array
9 val tabulate: (int * (int -> elem)) -> array
10 val length: array -> int
11 val sub: (array * int) -> elem
12 val update: (array * int * elem) -> unit
13 val extract: (array * int * int option) -> Vector.vector
14 val copy: {src: array, si: int, len: int option,
15 dst: array, di: int} -> unit
16 val copyVec: {src: Vector.vector, si: int, len: int option,
17 dst: array, di: int} -> unit
18 val appi: ((int * elem) -> unit) -> (array * int * int option) -> unit
19 val app: (elem -> unit) -> array -> unit
20 val foldli: ((int * elem * 'b) -> 'b) -> 'b -> (array * int * int option) -> 'b
21 val foldri: ((int * elem * 'b) -> 'b) -> 'b -> (array * int * int option) -> 'b
22 val foldl: ((elem * 'b) -> 'b) -> 'b -> array -> 'b
23 val foldr: ((elem * 'b) -> 'b) -> 'b -> array -> 'b
24 val modifyi: ((int * elem) -> elem) -> (array * int * int option) -> unit
25 val modify: (elem -> elem) -> array -> unit
26 end