sig   type 'a t   exception Out_of_bounds   val max_length : int   val empty : 'BatVect.t   val singleton : '-> 'BatVect.t   val of_array : 'a array -> 'BatVect.t   val to_array : 'BatVect.t -> 'a array   val to_list : 'BatVect.t -> 'a list   val of_list : 'a list -> 'BatVect.t   val make : int -> '-> 'BatVect.t   val init : int -> (int -> 'a) -> 'BatVect.t   val is_empty : 'BatVect.t -> bool   val height : 'BatVect.t -> int   val length : 'BatVect.t -> int   val balance : 'BatVect.t -> 'BatVect.t   val concat : 'BatVect.t -> 'BatVect.t -> 'BatVect.t   val append : '-> 'BatVect.t -> 'BatVect.t   val prepend : '-> 'BatVect.t -> 'BatVect.t   val get : 'BatVect.t -> int -> 'a   val at : 'BatVect.t -> int -> 'a   val set : 'BatVect.t -> int -> '-> 'BatVect.t   val modify : 'BatVect.t -> int -> ('-> 'a) -> 'BatVect.t   val destructive_set : 'BatVect.t -> int -> '-> unit   val sub : 'BatVect.t -> int -> int -> 'BatVect.t   val insert : int -> 'BatVect.t -> 'BatVect.t -> 'BatVect.t   val remove : int -> int -> 'BatVect.t -> 'BatVect.t   val enum : 'BatVect.t -> 'BatEnum.t   val of_enum : 'BatEnum.t -> 'BatVect.t   val backwards : 'BatVect.t -> 'BatEnum.t   val of_backwards : 'BatEnum.t -> 'BatVect.t   val iter : ('-> unit) -> 'BatVect.t -> unit   val iteri : (int -> '-> unit) -> 'BatVect.t -> unit   val rangeiter : ('-> unit) -> int -> int -> 'BatVect.t -> unit   val fold_left : ('-> '-> 'b) -> '-> 'BatVect.t -> 'b   val fold : ('-> '-> 'b) -> '-> 'BatVect.t -> 'b   val reduce : ('-> '-> 'a) -> 'BatVect.t -> 'a   val fold_right : ('-> '-> 'b) -> 'BatVect.t -> '-> 'b   val foldi : (int -> '-> '-> 'b) -> '-> 'BatVect.t -> 'b   val map : ('-> 'b) -> 'BatVect.t -> 'BatVect.t   val mapi : (int -> '-> 'b) -> 'BatVect.t -> 'BatVect.t   val for_all : ('-> bool) -> 'BatVect.t -> bool   val exists : ('-> bool) -> 'BatVect.t -> bool   val find : ('-> bool) -> 'BatVect.t -> 'a   val mem : '-> 'BatVect.t -> bool   val memq : '-> 'BatVect.t -> bool   val findi : ('-> bool) -> 'BatVect.t -> int   val filter : ('-> bool) -> 'BatVect.t -> 'BatVect.t   val filter_map : ('-> 'b option) -> 'BatVect.t -> 'BatVect.t   val find_all : ('-> bool) -> 'BatVect.t -> 'BatVect.t   val partition : ('-> bool) -> 'BatVect.t -> 'BatVect.t * 'BatVect.t   val first : 'BatVect.t -> 'a   val last : 'BatVect.t -> 'a   val shift : 'BatVect.t -> 'a * 'BatVect.t   val pop : 'BatVect.t -> 'a * 'BatVect.t   val print :     ?first:string ->     ?last:string ->     ?sep:string ->     ('BatInnerIO.output -> '-> unit) ->     'BatInnerIO.output -> 'BatVect.t -> unit   val compare : 'BatOrd.comp -> 'BatVect.t BatOrd.comp   val equal : 'BatOrd.eq -> 'BatVect.t BatOrd.eq   val ord : 'BatOrd.ord -> 'BatVect.t BatOrd.ord   val invariants : 'BatVect.t -> unit   module type RANDOMACCESS =     sig       type 'a t       val empty : 'BatVect.RANDOMACCESS.t       val get : 'BatVect.RANDOMACCESS.t -> int -> 'a       val unsafe_get : 'BatVect.RANDOMACCESS.t -> int -> 'a       val set : 'BatVect.RANDOMACCESS.t -> int -> '-> unit       val unsafe_set : 'BatVect.RANDOMACCESS.t -> int -> '-> unit       val append :         'BatVect.RANDOMACCESS.t ->         'BatVect.RANDOMACCESS.t -> 'BatVect.RANDOMACCESS.t       val concat :         'BatVect.RANDOMACCESS.t list -> 'BatVect.RANDOMACCESS.t       val length : 'BatVect.RANDOMACCESS.t -> int       val copy : 'BatVect.RANDOMACCESS.t -> 'BatVect.RANDOMACCESS.t       val sub :         'BatVect.RANDOMACCESS.t -> int -> int -> 'BatVect.RANDOMACCESS.t       val make : int -> '-> 'BatVect.RANDOMACCESS.t       val iter : ('-> unit) -> 'BatVect.RANDOMACCESS.t -> unit       val map :         ('-> 'b) -> 'BatVect.RANDOMACCESS.t -> 'BatVect.RANDOMACCESS.t       val fold_right :         ('-> '-> 'b) -> 'BatVect.RANDOMACCESS.t -> '-> 'b       val enum : 'BatVect.RANDOMACCESS.t -> 'BatEnum.t       val backwards : 'BatVect.RANDOMACCESS.t -> 'BatEnum.t       val of_enum : 'BatEnum.t -> 'BatVect.RANDOMACCESS.t       val of_backwards : 'BatEnum.t -> 'BatVect.RANDOMACCESS.t     end   module Make :     functor       (R : RANDOMACCESS) (PARAM : sig                                     val max_height : int                                     val leaf_size : int                                   end->       sig         type 'a t         exception Out_of_bounds         val max_length : int         val empty : 'BatVect.Make.t         val singleton : '-> 'BatVect.Make.t         val of_container : 'R.t -> 'BatVect.Make.t         val to_container : 'BatVect.Make.t -> 'R.t         val of_array : 'a array -> 'BatVect.Make.t         val to_array : 'BatVect.Make.t -> 'a array         val to_list : 'BatVect.Make.t -> 'a list         val of_list : 'a list -> 'BatVect.Make.t         val make : int -> '-> 'BatVect.Make.t         val init : int -> (int -> 'a) -> 'BatVect.Make.t         val is_empty : 'BatVect.Make.t -> bool         val height : 'BatVect.Make.t -> int         val length : 'BatVect.Make.t -> int         val balance : 'BatVect.Make.t -> 'BatVect.Make.t         val concat :           'BatVect.Make.t -> 'BatVect.Make.t -> 'BatVect.Make.t         val append : '-> 'BatVect.Make.t -> 'BatVect.Make.t         val prepend : '-> 'BatVect.Make.t -> 'BatVect.Make.t         val get : 'BatVect.Make.t -> int -> 'a         val at : 'BatVect.Make.t -> int -> 'a         val set : 'BatVect.Make.t -> int -> '-> 'BatVect.Make.t         val modify :           'BatVect.Make.t -> int -> ('-> 'a) -> 'BatVect.Make.t         val destructive_set : 'BatVect.Make.t -> int -> '-> unit         val sub : 'BatVect.Make.t -> int -> int -> 'BatVect.Make.t         val insert :           int -> 'BatVect.Make.t -> 'BatVect.Make.t -> 'BatVect.Make.t         val remove : int -> int -> 'BatVect.Make.t -> 'BatVect.Make.t         val enum : 'BatVect.Make.t -> 'BatEnum.t         val of_enum : 'BatEnum.t -> 'BatVect.Make.t         val backwards : 'BatVect.Make.t -> 'BatEnum.t         val of_backwards : 'BatEnum.t -> 'BatVect.Make.t         val iter : ('-> unit) -> 'BatVect.Make.t -> unit         val iteri : (int -> '-> unit) -> 'BatVect.Make.t -> unit         val rangeiter :           ('-> unit) -> int -> int -> 'BatVect.Make.t -> unit         val fold_left : ('-> '-> 'b) -> '-> 'BatVect.Make.t -> 'b         val fold : ('-> '-> 'b) -> '-> 'BatVect.Make.t -> 'b         val reduce : ('-> '-> 'a) -> 'BatVect.Make.t -> 'a         val fold_right : ('-> '-> 'b) -> 'BatVect.Make.t -> '-> 'b         val foldi : (int -> '-> '-> 'b) -> '-> 'BatVect.Make.t -> 'b         val map : ('-> 'b) -> 'BatVect.Make.t -> 'BatVect.Make.t         val mapi :           (int -> '-> 'b) -> 'BatVect.Make.t -> 'BatVect.Make.t         val for_all : ('-> bool) -> 'BatVect.Make.t -> bool         val exists : ('-> bool) -> 'BatVect.Make.t -> bool         val find : ('-> bool) -> 'BatVect.Make.t -> 'a         val mem : '-> 'BatVect.Make.t -> bool         val memq : '-> 'BatVect.Make.t -> bool         val findi : ('-> bool) -> 'BatVect.Make.t -> int         val filter : ('-> bool) -> 'BatVect.Make.t -> 'BatVect.Make.t         val filter_map :           ('-> 'b option) -> 'BatVect.Make.t -> 'BatVect.Make.t         val find_all : ('-> bool) -> 'BatVect.Make.t -> 'BatVect.Make.t         val partition :           ('-> bool) ->           'BatVect.Make.t -> 'BatVect.Make.t * 'BatVect.Make.t         val first : 'BatVect.Make.t -> 'a         val last : 'BatVect.Make.t -> 'a         val shift : 'BatVect.Make.t -> 'a * 'BatVect.Make.t         val pop : 'BatVect.Make.t -> 'a * 'BatVect.Make.t         val print :           ?first:string ->           ?last:string ->           ?sep:string ->           ('BatInnerIO.output -> '-> unit) ->           'BatInnerIO.output -> 'BatVect.Make.t -> unit         val invariants : 'BatVect.Make.t -> unit       end end