Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / basis-library / arrays-and-vectors / mono-vector-slice.sig
1 signature MONO_VECTOR_SLICE =
2 sig
3 type elem
4 type slice
5 type vector
6
7 val all: (elem -> bool) -> slice -> bool
8 val app: (elem -> unit) -> slice -> unit
9 val appi: (int * elem -> unit) -> slice -> unit
10 val base: slice -> vector * int * int
11 val collate: (elem * elem -> order) -> slice * slice -> order
12 val concat: slice list -> vector
13 val exists: (elem -> bool) -> slice -> bool
14 val find : (elem -> bool) -> slice -> elem option
15 val findi: (int * elem -> bool) -> slice -> (int * elem) option
16 val foldl: (elem * 'b -> 'b) -> 'b -> slice -> 'b
17 val foldli: (int * elem * 'b -> 'b) -> 'b -> slice -> 'b
18 val foldr: (elem * 'b -> 'b) -> 'b -> slice -> 'b
19 val foldri: (int * elem * 'b -> 'b) -> 'b -> slice -> 'b
20 val full: vector -> slice
21 val getItem: slice -> (elem * slice) option
22 val isEmpty: slice -> bool
23 val length: slice -> int
24 val map: (elem -> elem) -> slice -> vector
25 val mapi: (int * elem -> elem) -> slice -> vector
26 val slice: vector * int * int option -> slice
27 val sub: slice * int -> elem
28 val subslice: slice * int * int option -> slice
29 val vector: slice -> vector
30 end
31
32 signature MONO_VECTOR_SLICE_EXTRA =
33 sig
34 include MONO_VECTOR_SLICE
35
36 val concatWith: vector -> slice list -> vector
37 val dropl: (elem -> bool) -> slice -> slice
38 val dropr: (elem -> bool) -> slice -> slice
39 val fields: (elem -> bool) -> slice -> slice list
40 val fromPoly: elem VectorSlice.slice -> slice
41 val isPrefix: (elem * elem -> bool) -> vector -> slice -> bool
42 val isSubvector: (elem * elem -> bool) -> vector -> slice -> bool
43 val isSuffix: (elem * elem -> bool) -> vector -> slice -> bool
44 val position: (elem * elem -> bool) -> vector -> slice -> slice * slice
45 val splitAt: slice * int -> slice * slice
46 val splitl: (elem -> bool) -> slice -> slice * slice
47 val splitr: (elem -> bool) -> slice -> slice * slice
48 val takel: (elem -> bool) -> slice -> slice
49 val taker: (elem -> bool) -> slice -> slice
50 val toList: slice -> elem list
51 val toPoly: slice -> elem VectorSlice.slice
52 val tokens: (elem -> bool) -> slice -> slice list
53 val translate: (elem -> vector) -> slice -> vector
54 val triml: int -> slice -> slice
55 val trimr: int -> slice -> slice
56 val unsafeSlice: vector * int * int option -> slice
57 val unsafeSub: slice * int -> elem
58 val unsafeSubslice: slice * int * int option -> slice
59 end
60
61 signature EQTYPE_MONO_VECTOR_SLICE_EXTRA =
62 sig
63 include MONO_VECTOR_SLICE_EXTRA
64
65 val span: slice * slice -> slice
66 end