Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / arrays-and-vectors / array.sig
CommitLineData
7f918cf1
CE
1signature ARRAY_GLOBAL =
2 sig
3 type 'a array = 'a Array.array
4 end
5
6signature ARRAY =
7 sig
8 include ARRAY_GLOBAL
9
10 type 'a vector = 'a Vector.vector
11
12 val all: ('a -> bool) -> 'a array -> bool
13 val app: ('a -> unit) -> 'a array -> unit
14 val appi: (int * 'a -> unit) -> 'a array -> unit
15 val array: int * 'a -> 'a array
16 val collate: ('a * 'a -> order) -> 'a array * 'a array -> order
17 val copy: {src: 'a array, dst: 'a array, di: int} -> unit
18 val copyVec: {src: 'a vector, dst: 'a array, di: int} -> unit
19 val exists: ('a -> bool) -> 'a array -> bool
20 val find: ('a -> bool) -> 'a array -> 'a option
21 val findi: (int * 'a -> bool) -> 'a array -> (int * 'a) option
22 val foldl: ('a * 'b -> 'b) -> 'b -> 'a array -> 'b
23 val foldli: (int * 'a * 'b -> 'b) -> 'b -> 'a array -> 'b
24 val foldr: ('a * 'b -> 'b) -> 'b -> 'a array -> 'b
25 val foldri: (int * 'a * 'b -> 'b) -> 'b -> 'a array -> 'b
26 val fromList: 'a list -> 'a array
27 val length: 'a array -> int
28 val maxLen: int
29 val modify: ('a -> 'a) -> 'a array -> unit
30 val modifyi: (int * 'a -> 'a) -> 'a array -> unit
31 val sub: 'a array * int -> 'a
32 val tabulate: int * (int -> 'a) -> 'a array
33 val update: 'a array * int * 'a -> unit
34 val vector: 'a array -> 'a vector
35 end
36
37signature ARRAY_EXTRA =
38 sig
39 include ARRAY
40
41 structure ArraySlice: ARRAY_SLICE_EXTRA
42
43 val alloc: int -> 'a array
44 val uninitIsNop: 'a array -> bool
45 val uninit: 'a array * int -> unit
46 val unsafeAlloc: int -> 'a array
47 val unsafeArray: int * 'a -> 'a array
48 val unsafeCopy: {dst: 'a array, di: int, src: 'a array} -> unit
49 val unsafeCopyVec: {dst: 'a array, di: int, src: 'a vector} -> unit
50 val unsafeSub: 'a array * int -> 'a
51 val unsafeUninit: 'a array * int -> unit
52 val unsafeUpdate: 'a array * int * 'a -> unit
53
54 val concat: 'a array list -> 'a array
55 val duplicate: 'a array -> 'a array
56 val toList: 'a array -> 'a list
57 val unfoldi: int * 'b * (int * 'b -> 'a * 'b) -> 'a array * 'b
58 val unfold: int * 'b * ('b -> 'a * 'b) -> 'a array * 'b
59
60 structure Raw:
61 sig
62 type 'a rawarr
63 val alloc: int -> 'a rawarr
64 val length: 'a rawarr -> int
65 val uninit: 'a rawarr * int -> unit
66 val uninitIsNop: 'a rawarr -> bool
67 val unsafeAlloc: int -> 'a rawarr
68 val unsafeToArray: 'a rawarr -> 'a array
69 val unsafeUninit: 'a rawarr * int -> unit
70 end
71 end