Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / basis-library / arrays-and-vectors / mono-array.sig
CommitLineData
7f918cf1
CE
1signature MONO_ARRAY =
2 sig
3 eqtype array
4 type elem
5 type vector
6
7 val all: (elem -> bool) -> array -> bool
8 val app: (elem -> unit) -> array -> unit
9 val appi: (int * elem -> unit) -> array -> unit
10 val array: int * elem -> array
11 val collate: (elem * elem -> order) -> array * array -> order
12 val copy: {src: array, dst: array, di: int} -> unit
13 val copyVec: {src: vector, dst: array, di: int} -> unit
14 val exists: (elem -> bool) -> array -> bool
15 val find: (elem -> bool) -> array -> elem option
16 val findi: (int * elem -> bool) -> array -> (int * elem) option
17 val foldl: (elem * 'b -> 'b) -> 'b -> array -> 'b
18 val foldli: (int * elem * 'b -> 'b) -> 'b -> array -> 'b
19 val foldr: (elem * 'b -> 'b) -> 'b -> array -> 'b
20 val foldri: (int * elem * 'b -> 'b) -> 'b -> array -> 'b
21 val fromList: elem list -> array
22 val length: array -> int
23 val maxLen: int
24 val modify: (elem -> elem) -> array -> unit
25 val modifyi: (int * elem -> elem) -> array -> unit
26 val sub: array * int -> elem
27 val tabulate: int * (int -> elem) -> array
28 val update: array * int * elem -> unit
29 val vector: array -> vector
30 end
31
32signature MONO_ARRAY_EXTRA =
33 sig
34 include MONO_ARRAY
35 type vector_slice
36 structure MonoArraySlice: MONO_ARRAY_SLICE_EXTRA
37 where type elem = elem
38 and type array = array
39 and type vector = vector
40 and type vector_slice = vector_slice
41
42 val alloc: int -> array
43 val uninitIsNop: array -> bool
44 val uninit: array * int -> unit
45
46 val concat: array list -> array
47 val duplicate: array -> array
48 val fromPoly: elem Array.array -> array
49 val toList: array -> elem list
50 val toPoly: array -> elem Array.array
51 val unfoldi: int * 'a * (int * 'a -> elem * 'a) -> array * 'a
52
53 val unsafeAlloc: int -> array
54 val unsafeSub: array * int -> elem
55 val unsafeUninit: array * int -> unit
56 val unsafeUpdate: array * int * elem -> unit
57 end