Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / arrays-and-vectors / mono-vector.sig
CommitLineData
7f918cf1
CE
1signature MONO_VECTOR =
2 sig
3 type vector
4 type elem
5
6 val all: (elem -> bool) -> vector -> bool
7 val app: (elem -> unit) -> vector -> unit
8 val appi: (int * elem -> unit) -> vector -> unit
9 val collate: (elem * elem -> order) -> vector * vector -> order
10 val concat: vector list -> vector
11 val exists: (elem -> bool) -> vector -> bool
12 val find: (elem -> bool) -> vector -> elem option
13 val findi: (int * elem -> bool) -> vector -> (int * elem) option
14 val foldl: (elem * 'a -> 'a) -> 'a -> vector -> 'a
15 val foldli: (int * elem * 'a -> 'a) -> 'a -> vector -> 'a
16 val foldr: (elem * 'a -> 'a) -> 'a -> vector -> 'a
17 val foldri: (int * elem * 'a -> 'a) -> 'a -> vector -> 'a
18 val fromList: elem list -> vector
19 val length: vector -> int
20 val map: (elem -> elem) -> vector -> vector
21 val mapi: (int * elem -> elem) -> vector -> vector
22 val maxLen: int
23 val sub: vector * int -> elem
24 val tabulate: int * (int -> elem) -> vector
25 val update: vector * int * elem -> vector
26 end
27
28signature MONO_VECTOR_EXTRA_COMMON =
29 sig
30 include MONO_VECTOR
31
32 type array
33
34 val append: vector * vector -> vector
35 val concatWith: vector -> vector list -> vector
36 val duplicate: vector -> vector
37 val fields: (elem -> bool) -> vector -> vector list
38 val fromPoly: elem Vector.vector -> vector
39 val isPrefix: (elem * elem -> bool) -> vector -> vector -> bool
40 val isSubvector: (elem * elem -> bool) -> vector -> vector -> bool
41 val isSuffix: (elem * elem -> bool) -> vector -> vector -> bool
42 val toList: vector -> elem list
43 val toPoly: vector -> elem Vector.vector
44 val tokens: (elem -> bool) -> vector -> vector list
45 val translate: (elem -> vector) -> vector -> vector
46 val unfoldi: int * 'a * (int * 'a -> elem * 'a) -> vector * 'a
47 val unsafeFromArray: array -> vector
48 val unsafeSub: vector * int -> elem
49 val vector: int * elem -> vector
50 end
51
52signature MONO_VECTOR_EXTRA =
53 sig
54 include MONO_VECTOR_EXTRA_COMMON
55
56 structure MonoVectorSlice: MONO_VECTOR_SLICE_EXTRA
57 where type elem = elem
58 and type vector = vector
59 end
60
61signature EQTYPE_MONO_VECTOR_EXTRA =
62 sig
63 eqtype vector_eqtype
64 include MONO_VECTOR_EXTRA_COMMON
65 sharing type vector_eqtype = vector
66
67 structure MonoVectorSlice: EQTYPE_MONO_VECTOR_SLICE_EXTRA
68 where type elem = elem
69 and type vector = vector
70 end