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 -> '-> unit     = "%array_safe_set"   external make : int -> '-> ('a, [< `Read | `Write ]) t = "caml_make_vect"   external create : int -> '-> ('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, [< `Read | `Write ]) t, [< `Read | `Write ]) t   val create_matrix :     int -> int -> '-> (('a, [< `Read | `Write ]) t, [< `Read | `Write ]) t   val iter : ('-> unit) -> ('a, [< `Read | `Write > `Read ]) t -> unit   val map :     ('-> 'b) ->     ('a, [< `Read | `Write > `Read ]) t -> ('b, [< `Read | `Write ]) t   val iteri :     (int -> '-> unit) -> ('a, [< `Read | `Write > `Read ]) t -> unit   val mapi :     (int -> '-> 'b) ->     ('a, [< `Read | `Write > `Read ]) t -> ('b, [< `Read | `Write ]) t   val modify : ('-> 'a) -> ('a, [ `Read | `Write ]) t -> unit   val modifyi : (int -> '-> 'a) -> ('a, [ `Read | `Write ]) t -> unit   val fold_left :     ('-> '-> 'a) -> '-> ('b, [< `Read | `Write > `Read ]) t -> 'a   val fold_right :     ('-> '-> 'a) -> ('b, [< `Read | `Write > `Read ]) t -> '-> 'a   val iter2 :     ('-> '-> unit) ->     ('a, [< `Read | `Write > `Read ]) t ->     ('b, [< `Read | `Write > `Read ]) t -> unit   val iter2i :     (int -> '-> '-> unit) ->     ('a, [< `Read | `Write > `Read ]) t ->     ('b, [< `Read | `Write > `Read ]) t -> unit   val for_all : ('-> bool) -> ('a, [< `Read | `Write > `Read ]) t -> bool   val exists : ('-> bool) -> ('a, [< `Read | `Write > `Read ]) t -> bool   val mem : '-> ('a, [< `Read | `Write > `Read ]) t -> bool   val memq : '-> ('a, [< `Read | `Write > `Read ]) t -> bool   val filter :     ('-> bool) ->     ('a, [< `Read | `Write > `Read ]) t -> ('a, [< `Read | `Write ]) t   val filter_map :     ('-> 'b option) ->     ('a, [< `Read | `Write > `Read ]) t -> ('b, [< `Read | `Write ]) t   val find_all :     ('-> bool) ->     ('a, [< `Read | `Write > `Read ]) t -> ('a, [< `Read | `Write ]) t   val partition :     ('-> 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 -> '-> unit   val blit :     ('a, [< `Read | `Write > `Read ]) t ->     int -> ('a, [< `Read | `Write > `Write ]) t -> int -> int -> unit   val enum : ('a, [< `Read | `Write > `Read ]) t -> 'BatEnum.t   val of_enum : 'BatEnum.t -> ('a, [< `Read | `Write ]) t   val backwards : ('a, [< `Read | `Write > `Read ]) t -> 'BatEnum.t   val of_backwards : '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 : ('-> '-> int) -> ('a, [ `Read | `Write ]) t -> unit   val stable_sort : ('-> '-> int) -> ('a, [ `Read | `Write ]) t -> unit   val fast_sort : ('-> '-> int) -> ('a, [ `Read | `Write ]) t -> unit   val print :     ?first:string ->     ?last:string ->     ?sep:string ->     ('BatIO.output -> '-> unit) ->     'BatIO.output -> ('b, [< `Read | `Write > `Read ]) t -> unit   val compare :     'BatOrd.comp -> ('a, [< `Read | `Write > `Read ]) t BatOrd.comp   val ord : 'BatOrd.ord -> ('a, [< `Read | `Write > `Read ]) t BatOrd.ord   val equal : '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 -> '-> unit     = "%array_unsafe_set"   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