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 -> 'a -> unit = "%array_safe_set"   external make : int -> 'a -> 'a array = "caml_make_vect"   external create_float : int -> float array = "caml_make_float_vect"   val make_float : int -> float array   external create : int -> 'a -> 'a array = "caml_make_vect"   val init : int -> (int -> 'a) -> 'a array   val make_matrix : int -> int -> 'a -> 'a array array   val create_matrix : int -> int -> 'a -> '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 -> 'a -> 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 : ('a -> unit) -> 'a array -> unit   val map : ('a -> 'b) -> 'a array -> 'b array   val iteri : (int -> 'a -> unit) -> 'a array -> unit   val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array   val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a   val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a   val modify : ('a -> 'a) -> 'a array -> unit   val modifyi : (int -> 'a -> 'a) -> 'a array -> unit   val fold_lefti : ('a -> int -> 'b -> 'a) -> 'a -> 'b array -> 'a   val fold_righti : (int -> 'b -> 'a -> 'a) -> 'b array -> 'a -> 'a   val reduce : ('a -> 'a -> 'a) -> 'a array -> 'a   val singleton : 'a -> 'a array   val sort : ('a -> 'a -> int) -> 'a array -> unit   val stable_sort : ('a -> 'a -> int) -> 'a array -> unit   val fast_sort : ('a -> 'a -> int) -> 'a array -> unit   val decorate_stable_sort : ('a -> 'b) -> 'a array -> 'a array   val decorate_fast_sort : ('a -> 'b) -> 'a array -> 'a array   val bsearch :     'a BatOrd.ord ->     'a array ->     'a ->     [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]   val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit   val iter2i : (int -> 'a -> 'b -> unit) -> 'a array -> 'b array -> unit   val for_all2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool   val exists2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool   val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array   val cartesian_product : 'a array -> 'b array -> ('a * 'b) array   val for_all : ('a -> bool) -> 'a array -> bool   val exists : ('a -> bool) -> 'a array -> bool   val mem : 'a -> 'a array -> bool   val memq : 'a -> 'a array -> bool   val filter : ('a -> bool) -> 'a array -> 'a array   val filteri : (int -> 'a -> bool) -> 'a array -> 'a array   val filter_map : ('a -> 'b option) -> 'a array -> 'b array   val find_all : ('a -> bool) -> 'a array -> 'a array   val partition : ('a -> bool) -> 'a array -> 'a array * 'a array   val rev : 'a array -> 'a array   val rev_in_place : 'a array -> unit   val enum : 'a array -> 'a BatEnum.t   val of_enum : 'a BatEnum.t -> 'a array   val backwards : 'a array -> 'a BatEnum.t   val of_backwards : 'a BatEnum.t -> 'a array   val range : 'a array -> int BatEnum.t   val insert : 'a array -> 'a -> int -> 'a array   val print :     ?first:string ->     ?last:string ->     ?sep:string -> ('a, 'b) BatIO.printer -> ('a t, 'b) BatIO.printer   val compare : 'a BatOrd.comp -> 'a array BatOrd.comp   val ord : 'a BatOrd.ord -> 'a array BatOrd.ord   val equal : 'a BatOrd.eq -> 'a array BatOrd.eq   module Exceptionless :     sig       val find : ('a -> bool) -> 'a t -> 'a option       val findi : ('a -> bool) -> 'a t -> int option     end   module Incubator :     sig       module Eq :         functor (T : BatOrd.Eq) ->           sig type t = T.t array val eq : T.t array BatOrd.eq end       module Ord :         functor (T : BatOrd.Ord) ->           sig type t = T.t array val ord : T.t array BatOrd.ord end     end   val is_sorted_by : ('a -> 'b) -> 'a array -> bool   external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"   external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"   val find : ('a -> bool) -> 'a BatArray.t -> 'a option   val findi : ('a -> bool) -> 'a BatArray.t -> int option   module Labels :     sig       val init : int -> f:(int -> 'a) -> 'a array       val create : int -> init:'a -> 'a array       val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array       val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array       val sub : 'a array -> pos:int -> len:int -> 'a array       val fill : 'a array -> pos:int -> len:int -> 'a -> unit       val blit :         src:'a array ->         src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit       val iter : f:('a -> unit) -> 'a array -> unit       val iteri : f:(int -> 'a -> unit) -> 'a array -> unit       val modify : f:('a -> 'a) -> 'a array -> unit       val modifyi : f:(int -> 'a -> 'a) -> 'a array -> unit       val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a       val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a       val sort : cmp:('a -> 'a -> int) -> 'a array -> unit       val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit       val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit       val iter2 :         f:('a -> 'b -> unit) -> 'a BatArray.t -> 'b BatArray.t -> unit       val exists : f:('a -> bool) -> 'a BatArray.t -> bool       val for_all : f:('a -> bool) -> 'a BatArray.t -> bool       val iter2i :         f:(int -> 'a -> 'b -> unit) -> 'a BatArray.t -> 'b BatArray.t -> unit       val map : f:('a -> 'b) -> 'a BatArray.t -> 'b BatArray.t       val mapi : f:(int -> 'a -> 'b) -> 'a BatArray.t -> 'b BatArray.t       val filter : f:('a -> bool) -> 'a BatArray.t -> 'a BatArray.t       val filter_map : f:('a -> 'b option) -> 'a BatArray.t -> 'b BatArray.t       module LExceptionless = BatArray.Labels.LExceptionless       val find : f:('a -> bool) -> 'a BatArray.t -> 'a option       val findi : f:('a -> bool) -> 'a BatArray.t -> int option     end   module Cap :     sig       type ('a, 'b) t = ('a, 'b) BatArray.Cap.t         constraint 'b = [< `Read | `Write ]       external length : ('a, [< `Read | `Write ]) t -> int = "%array_length"       external get : ('a, [< `Read | `Write > `Read ]) t -> int -> 'a         = "%array_safe_get"       external set :         ('a, [< `Read | `Write > `Write ]) t -> int -> 'a -> unit         = "%array_safe_set"       external make : int -> 'a -> ('a, [< `Read | `Write ]) t         = "caml_make_vect"       external create : int -> 'a -> ('a, [< `Read | `Write ]) t         = "caml_make_vect"       external make_float : int -> (float, [< `Read | `Write ]) t         = "caml_make_float_vect"       external of_array : 'a array -> ('a, [< `Read | `Write ]) t         = "%identity"       external to_array : ('a, [ `Read | `Write ]) t -> 'a array         = "%identity"       external read_only :         ('a, [< `Read | `Write > `Read ]) t -> ('a, [ `Read ]) t         = "%identity"       external write_only :         ('a, [< `Read | `Write > `Write ]) t -> ('a, [ `Write ]) t         = "%identity"       val init : int -> (int -> 'a) -> ('a, [< `Read | `Write ]) t       val make_matrix :         int ->         int -> 'a -> (('a, [< `Read | `Write ]) t, [< `Read | `Write ]) t       val create_matrix :         int ->         int -> 'a -> (('a, [< `Read | `Write ]) t, [< `Read | `Write ]) t       val iter : ('a -> unit) -> ('a, [< `Read | `Write > `Read ]) t -> unit       val map :         ('a -> 'b) ->         ('a, [< `Read | `Write > `Read ]) t -> ('b, [< `Read | `Write ]) t       val iteri :         (int -> 'a -> unit) -> ('a, [< `Read | `Write > `Read ]) t -> unit       val mapi :         (int -> 'a -> 'b) ->         ('a, [< `Read | `Write > `Read ]) t -> ('b, [< `Read | `Write ]) t       val modify : ('a -> 'a) -> ('a, [ `Read | `Write ]) t -> unit       val modifyi : (int -> 'a -> 'a) -> ('a, [ `Read | `Write ]) t -> unit       val fold_left :         ('a -> 'b -> 'a) -> 'a -> ('b, [< `Read | `Write > `Read ]) t -> 'a       val fold_right :         ('b -> 'a -> 'a) -> ('b, [< `Read | `Write > `Read ]) t -> 'a -> 'a       val iter2 :         ('a -> 'b -> unit) ->         ('a, [< `Read | `Write > `Read ]) t ->         ('b, [< `Read | `Write > `Read ]) t -> unit       val iter2i :         (int -> 'a -> 'b -> unit) ->         ('a, [< `Read | `Write > `Read ]) t ->         ('b, [< `Read | `Write > `Read ]) t -> unit       val for_all :         ('a -> bool) -> ('a, [< `Read | `Write > `Read ]) t -> bool       val exists :         ('a -> bool) -> ('a, [< `Read | `Write > `Read ]) t -> bool       val mem : 'a -> ('a, [< `Read | `Write > `Read ]) t -> bool       val memq : 'a -> ('a, [< `Read | `Write > `Read ]) t -> bool       val filter :         ('a -> bool) ->         ('a, [< `Read | `Write > `Read ]) t -> ('a, [< `Read | `Write ]) t       val filter_map :         ('a -> 'b option) ->         ('a, [< `Read | `Write > `Read ]) t -> ('b, [< `Read | `Write ]) t       val find_all :         ('a -> bool) ->         ('a, [< `Read | `Write > `Read ]) t -> ('a, [< `Read | `Write ]) t       val partition :         ('a -> bool) ->         ('a, [< `Read | `Write > `Read ]) t ->         ('a, [< `Read | `Write ]) t * ('a, [< `Read | `Write ]) t       val rev :         ('a, [< `Read | `Write > `Read ]) t -> ('a, [< `Read | `Write ]) t       val rev_in_place : ('a, [ `Read | `Write ]) t -> unit       val append :         ('a, [< `Read | `Write > `Read ]) t ->         ('a, [< `Read | `Write > `Read ]) t -> ('a, [< `Read | `Write ]) t       val concat :         ('a, [< `Read | `Write > `Read ]) t list ->         ('a, [< `Read | `Write ]) t       val sub :         ('a, [< `Read | `Write > `Read ]) t ->         int -> int -> ('a, [< `Read | `Write ]) t       val copy : ('a, [< `Read | `Write > `Read ]) t -> 'a array       val fill :         ('a, [< `Read | `Write > `Write ]) t -> int -> int -> 'a -> unit       val blit :         ('a, [< `Read | `Write > `Read ]) t ->         int -> ('a, [< `Read | `Write > `Write ]) t -> int -> int -> unit       val enum : ('a, [< `Read | `Write > `Read ]) t -> 'a BatEnum.t       val of_enum : 'a BatEnum.t -> ('a, [< `Read | `Write ]) t       val backwards : ('a, [< `Read | `Write > `Read ]) t -> 'a BatEnum.t       val of_backwards : 'a BatEnum.t -> ('a, [< `Read | `Write ]) t       val to_list : ('a, [< `Read | `Write > `Read ]) t -> 'a list       val of_list : 'a list -> ('a, [< `Read | `Write ]) t       val sort : ('a -> 'a -> int) -> ('a, [ `Read | `Write ]) t -> unit       val stable_sort :         ('a -> 'a -> int) -> ('a, [ `Read | `Write ]) t -> unit       val fast_sort : ('a -> 'a -> int) -> ('a, [ `Read | `Write ]) t -> unit       val print :         ?first:string ->         ?last:string ->         ?sep:string ->         ('a BatIO.output -> 'b -> unit) ->         'a BatIO.output -> ('b, [< `Read | `Write > `Read ]) t -> unit       val compare :         'a BatOrd.comp -> ('a, [< `Read | `Write > `Read ]) t BatOrd.comp       val ord :         'a BatOrd.ord -> ('a, [< `Read | `Write > `Read ]) t BatOrd.ord       val equal :         'a BatOrd.eq -> ('a, [< `Read | `Write > `Read ]) t BatOrd.eq       module Exceptionless = BatArray.Cap.Exceptionless       module Labels = BatArray.Cap.Labels       external unsafe_get : ('a, [< `Read | `Write > `Read ]) t -> int -> 'a         = "%array_unsafe_get"       external unsafe_set :         ('a, [< `Read | `Write > `Write ]) t -> int -> 'a -> unit         = "%array_unsafe_set"       val find :         ('a -> bool) ->         ('a, [< `Read | `Write > `Read ]) BatArray.Cap.t -> 'a option       val findi :         ('a -> bool) ->         ('a, [< `Read | `Write > `Read ]) BatArray.Cap.t -> int option     end end