sig
val fold_lefti : (int -> 'a -> 'b -> 'a) -> 'a -> 'b array -> 'a
val fold_righti : (int -> 'a -> 'b -> 'b) -> 'a array -> 'b -> 'b
val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b array -> 'c array -> 'a
val iter2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> unit
val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
val init_matrix : int -> int -> (int -> int -> 'a) -> 'a array array
val matrix_of_list_list : 'a list list -> 'a array array
val nb_distinct : 'a array -> int
val binary : int -> int -> bool array
val extremum : ('a -> 'a -> bool) -> 'a array -> 'a
val swap : 'a array -> int -> int -> unit
val shuffle : ?prng:Random.State.t -> 'a array -> unit
val down_init : int -> (int -> 'a) -> 'a array
val cart : 'a array -> 'b array -> ('a * 'b) array array
val ( *$ ) : 'a array -> 'b array -> ('a * 'b) array array
val interval : int -> int -> int array
val ( -| ) : int -> int -> int array
end