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