sig
  type 'a t = 'a array
  type 'a enumerable = 'a t
  type 'a mappable = 'a t
  external length : 'a array -> int = "%array_length"
  external get : 'a array -> int -> 'a = "%array_safe_get"
  external set : 'a array -> int -> '-> unit = "%array_safe_set"
  external make : int -> '-> 'a array = "caml_make_vect"
  external make_float : int -> float array = "caml_make_float_vect"
  external create : int -> '-> 'a array = "caml_make_vect"
  val init : int -> (int -> 'a) -> 'a array
  val make_matrix : int -> int -> '-> 'a array array
  val create_matrix : int -> int -> '-> 'a array array
  val append : 'a array -> 'a array -> 'a array
  val concat : 'a array list -> 'a array
  val sub : 'a array -> int -> int -> 'a array
  val copy : 'a array -> 'a array
  val fill : 'a array -> int -> int -> '-> unit
  val blit : 'a array -> int -> 'a array -> int -> int -> unit
  val to_list : 'a array -> 'a list
  val of_list : 'a list -> 'a array
  val max : 'a array -> 'a
  val min : 'a array -> 'a
  val sum : int array -> int
  val fsum : float array -> float
  val kahan_sum : float array -> float
  val avg : int array -> float
  val favg : float array -> float
  val left : 'a array -> int -> 'a array
  val right : 'a array -> int -> 'a array
  val head : 'a array -> int -> 'a array
  val tail : 'a array -> int -> 'a array
  val iter : ('-> unit) -> 'a array -> unit
  val map : ('-> 'b) -> 'a array -> 'b array
  val iteri : (int -> '-> unit) -> 'a array -> unit
  val mapi : (int -> '-> 'b) -> 'a array -> 'b array
  val fold_left : ('-> '-> 'a) -> '-> 'b array -> 'a
  val fold_right : ('-> '-> 'a) -> 'b array -> '-> 'a
  val modify : ('-> 'a) -> 'a array -> unit
  val modifyi : (int -> '-> 'a) -> 'a array -> unit
  val fold_lefti : ('-> int -> '-> 'a) -> '-> 'b array -> 'a
  val fold_righti : (int -> '-> '-> 'a) -> 'b array -> '-> 'a
  val reduce : ('-> '-> 'a) -> 'a array -> 'a
  val singleton : '-> 'a array
  val sort : ('-> '-> int) -> 'a array -> unit
  val stable_sort : ('-> '-> int) -> 'a array -> unit
  val fast_sort : ('-> '-> int) -> 'a array -> unit
  val decorate_stable_sort : ('-> 'b) -> 'a array -> 'a array
  val decorate_fast_sort : ('-> 'b) -> 'a array -> 'a array
  val bsearch :
    'BatOrd.ord ->
    'a array ->
    '->
    [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
  val iter2 : ('-> '-> unit) -> 'a array -> 'b array -> unit
  val iter2i : (int -> '-> '-> unit) -> 'a array -> 'b array -> unit
  val for_all2 : ('-> '-> bool) -> 'a array -> 'b array -> bool
  val exists2 : ('-> '-> bool) -> 'a array -> 'b array -> bool
  val map2 : ('-> '-> 'c) -> 'a array -> 'b array -> 'c array
  val cartesian_product : 'a array -> 'b array -> ('a * 'b) array
  val for_all : ('-> bool) -> 'a array -> bool
  val exists : ('-> bool) -> 'a array -> bool
  val find : ('-> bool) -> 'a array -> 'a
  val mem : '-> 'a array -> bool
  val memq : '-> 'a array -> bool
  val findi : ('-> bool) -> 'a array -> int
  val filter : ('-> bool) -> 'a array -> 'a array
  val filteri : (int -> '-> bool) -> 'a array -> 'a array
  val filter_map : ('-> 'b option) -> 'a array -> 'b array
  val find_all : ('-> bool) -> 'a array -> 'a array
  val partition : ('-> bool) -> 'a array -> 'a array * 'a array
  val rev : 'a array -> 'a array
  val rev_in_place : 'a array -> unit
  val enum : 'a array -> 'BatEnum.t
  val of_enum : 'BatEnum.t -> 'a array
  val backwards : 'a array -> 'BatEnum.t
  val of_backwards : 'BatEnum.t -> 'a array
  val range : 'a array -> int BatEnum.t
  val insert : 'a array -> '-> int -> 'a array
  val print :
    ?first:string ->
    ?last:string ->
    ?sep:string -> ('a, 'b) BatIO.printer -> ('a t, 'b) BatIO.printer
  val compare : 'BatOrd.comp -> 'a array BatOrd.comp
  val ord : 'BatOrd.ord -> 'a array BatOrd.ord
  val equal : 'BatOrd.eq -> 'a array BatOrd.eq
  module Exceptionless = BatArray.Exceptionless
  module Labels = BatArray.Labels
  module Cap = BatArray.Cap
  module Incubator = BatArray.Incubator
  val is_sorted_by : ('-> 'b) -> 'a array -> bool
  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
  external unsafe_set : 'a array -> int -> '-> unit = "%array_unsafe_set"
end