sig
  val init : int -> f:(int -> 'a) -> 'a array
  val create : int -> init:'-> 'a array
  val make_matrix : dimx:int -> dimy:int -> '-> 'a array array
  val create_matrix : dimx:int -> dimy:int -> '-> 'a array array
  val sub : 'a array -> pos:int -> len:int -> 'a array
  val fill : 'a array -> pos:int -> len:int -> '-> unit
  val blit :
    src:'a array ->
    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
  val iter : f:('-> unit) -> 'a array -> unit
  val iteri : f:(int -> '-> unit) -> 'a array -> unit
  val modify : f:('-> 'a) -> 'a array -> unit
  val modifyi : f:(int -> '-> 'a) -> 'a array -> unit
  val fold_left : f:('-> '-> 'a) -> init:'-> 'b array -> 'a
  val fold : f:('-> '-> 'a) -> init:'-> 'b array -> 'a
  val fold_right : f:('-> '-> 'a) -> 'b array -> init:'-> 'a
  val fold_while :
    p:('acc -> '-> bool) ->
    f:('acc -> '-> 'acc) -> init:'acc -> 'a array -> 'acc * int
  val sort : cmp:('-> '-> int) -> 'a array -> unit
  val stable_sort : cmp:('-> '-> int) -> 'a array -> unit
  val fast_sort : cmp:('-> '-> int) -> 'a array -> unit
  val iter2 : f:('-> '-> unit) -> 'BatArray.t -> 'BatArray.t -> unit
  val exists : f:('-> bool) -> 'BatArray.t -> bool
  val for_all : f:('-> bool) -> 'BatArray.t -> bool
  val iter2i :
    f:(int -> '-> '-> unit) -> 'BatArray.t -> 'BatArray.t -> unit
  val find : f:('-> bool) -> 'BatArray.t -> 'a
  val find_opt : f:('-> bool) -> 'BatArray.t -> 'a option
  val find_map : f:('-> 'b option) -> 'a array -> 'b option
  val findi : f:('-> bool) -> 'BatArray.t -> int
  val map : f:('-> 'b) -> 'BatArray.t -> 'BatArray.t
  val mapi : f:(int -> '-> 'b) -> 'BatArray.t -> 'BatArray.t
  val filter : f:('-> bool) -> 'BatArray.t -> 'BatArray.t
  val filter_map : f:('-> 'b option) -> 'BatArray.t -> 'BatArray.t
  val count_matching : f:('-> bool) -> 'BatArray.t -> int
  module LExceptionless :
    sig
      val find : f:('-> bool) -> 'BatArray.t -> 'a option
      val findi : f:('-> bool) -> 'BatArray.t -> int option
    end
end