module CCArrayLabels:sig..end
type'asequence =('a -> unit) -> unit
type'aklist =unit -> [ `Cons of 'a * 'a klist | `Nil ]
type'agen =unit -> 'a option
type'aequal ='a -> 'a -> bool
type'aord ='a -> 'a -> int
type'arandom_gen =Random.State.t -> 'a
type'aprinter =Format.formatter -> 'a -> unit
type'at ='a array
val empty : 'a t
val equal : 'a equal -> 'a t equal
val compare : 'a ord -> 'a t ord
val get : 'a t -> int -> 'a
val get_safe : 'a t -> int -> 'a optionget_safe a i returns Some a.(i) if i is a valid indexval set : 'a t -> int -> 'a -> unit
val length : 'a t -> int
val fold : f:('a -> 'b -> 'a) -> init:'a -> 'b t -> 'a
val foldi : f:('a -> int -> 'b -> 'a) -> init:'a -> 'b t -> 'aval fold_while : f:('a -> 'b -> 'a * [ `Continue | `Stop ]) ->
init:'a -> 'b t -> 'a('a, `Stop) is
indicated by the accumulatorval iter : f:('a -> unit) -> 'a t -> unit
val iteri : f:(int -> 'a -> unit) -> 'a t -> unit
val blit : 'a t -> int -> 'a t -> int -> int -> unitblit from i into j len copies len elements from the first array
to the second. See Array.blit.val reverse_in_place : 'a t -> unitval sorted : f:('a -> 'a -> int) -> 'a t -> 'a arraysorted cmp a makes a copy of a and sorts it with cmp.val sort_indices : f:('a -> 'a -> int) -> 'a t -> int arraysort_indices cmp a returns a new array b, with the same length as a,
such that b.(i) is the index of the i-th element of a in sort cmp a.
In other words, map (fun i -> a.(i)) (sort_indices a) = sorted cmp a.
a is not modified.val sort_ranking : f:('a -> 'a -> int) -> 'a t -> int arraysort_ranking cmp a returns a new array b, with the same length as a,
such that b.(i) is the position in sorted cmp a of the i-th
element of a.
a is not modified.
In other words, map (fun i -> (sorted cmp a).(i)) (sort_ranking cmp a) = a.
Without duplicates, we also have
lookup_exn a.(i) (sorted a) = (sorted_ranking a).(i)
Since 1.0
val find : f:('a -> 'b option) -> 'a t -> 'b optionfind f a returns Some y if there is an element x such
that f x = Some y, else it returns Noneval findi : f:(int -> 'a -> 'b option) -> 'a t -> 'b option
val find_idx : f:('a -> bool) -> 'a t -> (int * 'a) optionfind_idx p x returns Some (i,x) where x is the i-th element of l,
and p x holds. Otherwise returns Noneval lookup : ?cmp:'a ord -> key:'a -> 'a t -> int optionNone if the key is not present, or
Some i (i the index of the key) otherwiseval lookup_exn : ?cmp:'a ord -> key:'a -> 'a t -> int
val bsearch : ?cmp:('a -> 'a -> int) ->
key:'a ->
'a t ->
[ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]bsearch ?cmp key arr finds the index of the object key in the array arr,
provided arr is sorted using cmp. If the array is not sorted,
the result is not specified (may raise Invalid_argument).
Complexity: O(log n) where n is the length of the array
(dichotomic search).
Since 0.13
Raises Invalid_argument if the array is found to be unsorted w.r.t cmp
Returns - `At i if cmp arr.(i) key = 0 (for some i)
`All_lower if all elements of arr are lower than key`All_bigger if all elements of arr are bigger than key`Just_after i if arr.(i) < key < arr.(i+1)`Empty if the array is emptyval for_all : f:('a -> bool) -> 'a t -> bool
val for_all2 : f:('a -> 'b -> bool) -> 'a t -> 'b t -> boolInvalid_argument if they have distinct lengths
allow different typesval exists : f:('a -> bool) -> 'a t -> bool
val exists2 : f:('a -> 'b -> bool) -> 'a t -> 'b t -> boolInvalid_argument if they have distinct lengths
allow different typesval fold2 : f:('acc -> 'a -> 'b -> 'acc) ->
init:'acc -> 'a t -> 'b t -> 'accInvalid_argument if they have distinct lengthsval iter2 : f:('a -> 'b -> unit) -> 'a t -> 'b t -> unitInvalid_argument if they have distinct lengthsval shuffle : 'a t -> unitval shuffle_with : Random.State.t -> 'a t -> unitval random_choose : 'a t -> 'a random_gen Not_found if the array/slice is emptyval to_seq : 'a t -> 'a sequence
val to_gen : 'a t -> 'a gen
val to_klist : 'a t -> 'a klist val pp : ?sep:string ->
'a printer -> 'a t printer val pp_i : ?sep:string ->
(int -> 'a printer) -> 'a t printer val map : f:('a -> 'b) -> 'a t -> 'b t
val map2 : f:('a -> 'b -> 'c) ->
'a t -> 'b t -> 'c t Invalid_argument if they have distinct lengthsval rev : 'a t -> 'a t val filter : f:('a -> bool) -> 'a t -> 'a t val filter_map : f:('a -> 'b option) -> 'a t -> 'b t val flat_map : f:('a -> 'b t) -> 'a t -> 'b arrayval (>>=) : 'a t -> ('a -> 'b t) -> 'b t CCArrayLabels.flat_map val (>>|) : 'a t -> ('a -> 'b) -> 'b t
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
val except_idx : 'a t -> int -> 'a listval (--) : int -> int -> int t val (--^) : int -> int -> int t val random : 'a random_gen -> 'a t random_gen
val random_non_empty : 'a random_gen -> 'a t random_gen
val random_len : int ->
'a random_gen -> 'a t random_gen module type MONO_ARRAY =sig..end
val sort_generic : (module CCArrayLabels.MONO_ARRAY with type elt = 'elt and type t = 'arr) ->
?cmp:('elt -> 'elt -> int) -> 'arr -> unitArray.sort.