Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / arrays-and-vectors / array-slice.sig
CommitLineData
7f918cf1
CE
1signature ARRAY_SLICE_GLOBAL =
2 sig
3 end
4
5signature ARRAY_SLICE =
6 sig
7 include ARRAY_SLICE_GLOBAL
8
9 type 'a slice
10
11 val all: ('a -> bool) -> 'a slice -> bool
12 val app : ('a -> unit) -> 'a slice -> unit
13 val appi: (int * 'a -> unit) -> 'a slice -> unit
14 val base: 'a slice -> 'a Array.array * int * int
15 val collate: ('a * 'a -> order) -> 'a slice * 'a slice -> order
16 val copy: {dst: 'a Array.array, di: int, src: 'a slice} -> unit
17 val copyVec: {dst: 'a Array.array, di: int, src: 'a VectorSlice.slice} -> unit
18 val exists: ('a -> bool) -> 'a slice -> bool
19 val find: ('a -> bool) -> 'a slice -> 'a option
20 val findi: (int * 'a -> bool) -> 'a slice -> (int * 'a) option
21 val foldl: ('a * 'b -> 'b) -> 'b -> 'a slice -> 'b
22 val foldli: (int * 'a * 'b -> 'b) -> 'b -> 'a slice -> 'b
23 val foldr: ('a * 'b -> 'b) -> 'b -> 'a slice -> 'b
24 val foldri: (int * 'a * 'b -> 'b) -> 'b -> 'a slice -> 'b
25 val full: 'a Array.array -> 'a slice
26 val getItem: 'a slice -> ('a * 'a slice) option
27 val isEmpty: 'a slice -> bool
28 val length: 'a slice -> int
29 val modify : ('a -> 'a) -> 'a slice -> unit
30 val modifyi: (int * 'a -> 'a) -> 'a slice -> unit
31 val slice: 'a Array.array * int * int option -> 'a slice
32 val sub: 'a slice * int -> 'a
33 val subslice: 'a slice * int * int option -> 'a slice
34 val update: 'a slice * int * 'a -> unit
35 val vector: 'a slice -> 'a Vector.vector
36 end
37
38signature ARRAY_SLICE_EXTRA =
39 sig
40 include ARRAY_SLICE
41
42 val uninitIsNop: 'a slice -> bool
43 val uninit: 'a slice * int -> unit
44 val unsafeSub: 'a slice * int -> 'a
45 val unsafeCopy: {dst: 'a Array.array, di: int, src: 'a slice} -> unit
46 val unsafeCopyVec: {dst: 'a Array.array, di: int, src: 'a VectorSlice.slice} -> unit
47 val unsafeSlice: 'a array * int * int option -> 'a slice
48 val unsafeSubslice: 'a slice * int * int option -> 'a slice
49 val unsafeUninit: 'a slice * int -> unit
50 val unsafeUpdate: 'a slice * int * 'a -> unit
51
52 val concat: 'a slice list -> 'a array
53 val toList: 'a slice -> 'a list
54 end