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