sig
  val fold_lefti : (int -> '-> '-> 'a) -> '-> 'b array -> 'a
  val fold_righti : (int -> '-> '-> 'b) -> 'a array -> '-> 'b
  val fold_left2 : ('-> '-> '-> 'a) -> '-> 'b array -> 'c array -> 'a
  val iter2 : ('-> '-> 'c) -> 'a array -> 'b array -> unit
  val map2 : ('-> '-> '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 : ('-> '-> 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