`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 : 'a BatVect.Make.t val singleton : 'a -> 'a BatVect.Make.t val of_container : 'a R.t -> 'a BatVect.Make.t val to_container : 'a BatVect.Make.t -> 'a R.t val of_array : 'a array -> 'a BatVect.Make.t val to_array : 'a BatVect.Make.t -> 'a array val to_list : 'a BatVect.Make.t -> 'a list val of_list : 'a list -> 'a BatVect.Make.t val make : int -> 'a -> 'a BatVect.Make.t val init : int -> (int -> 'a) -> 'a BatVect.Make.t val is_empty : 'a BatVect.Make.t -> bool val height : 'a BatVect.Make.t -> int val length : 'a BatVect.Make.t -> int val balance : 'a BatVect.Make.t -> 'a BatVect.Make.t val concat : 'a BatVect.Make.t -> 'a BatVect.Make.t -> 'a BatVect.Make.t val append : 'a -> 'a BatVect.Make.t -> 'a BatVect.Make.t val prepend : 'a -> 'a BatVect.Make.t -> 'a BatVect.Make.t val get : 'a BatVect.Make.t -> int -> 'a val at : 'a BatVect.Make.t -> int -> 'a val set : 'a BatVect.Make.t -> int -> 'a -> 'a BatVect.Make.t val modify : 'a BatVect.Make.t -> int -> ('a -> 'a) -> 'a BatVect.Make.t val destructive_set : 'a BatVect.Make.t -> int -> 'a -> unit val sub : 'a BatVect.Make.t -> int -> int -> 'a BatVect.Make.t val insert : int -> 'a BatVect.Make.t -> 'a BatVect.Make.t -> 'a BatVect.Make.t val remove : int -> int -> 'a BatVect.Make.t -> 'a BatVect.Make.t val enum : 'a BatVect.Make.t -> 'a BatEnum.t val of_enum : 'a BatEnum.t -> 'a BatVect.Make.t val backwards : 'a BatVect.Make.t -> 'a BatEnum.t val of_backwards : 'a BatEnum.t -> 'a BatVect.Make.t val iter : ('a -> unit) -> 'a BatVect.Make.t -> unit val iteri : (int -> 'a -> unit) -> 'a BatVect.Make.t -> unit val rangeiter : ('a -> unit) -> int -> int -> 'a BatVect.Make.t -> unit val fold_left : ('b -> 'a -> 'b) -> 'b -> 'a BatVect.Make.t -> 'b val fold : ('b -> 'a -> 'b) -> 'b -> 'a BatVect.Make.t -> 'b val reduce : ('a -> 'a -> 'a) -> 'a BatVect.Make.t -> 'a val fold_right : ('a -> 'b -> 'b) -> 'a BatVect.Make.t -> 'b -> 'b val foldi : (int -> 'b -> 'a -> 'b) -> 'b -> 'a BatVect.Make.t -> 'b val map : ('a -> 'b) -> 'a BatVect.Make.t -> 'b BatVect.Make.t val mapi : (int -> 'a -> 'b) -> 'a BatVect.Make.t -> 'b BatVect.Make.t val for_all : ('a -> bool) -> 'a BatVect.Make.t -> bool val exists : ('a -> bool) -> 'a BatVect.Make.t -> bool val find : ('a -> bool) -> 'a BatVect.Make.t -> 'a val mem : 'a -> 'a BatVect.Make.t -> bool val memq : 'a -> 'a BatVect.Make.t -> bool val findi : ('a -> bool) -> 'a BatVect.Make.t -> int val filter : ('a -> bool) -> 'a BatVect.Make.t -> 'a BatVect.Make.t val filter_map : ('a -> 'b option) -> 'a BatVect.Make.t -> 'b BatVect.Make.t val find_all : ('a -> bool) -> 'a BatVect.Make.t -> 'a BatVect.Make.t val partition : ('a -> bool) -> 'a BatVect.Make.t -> 'a BatVect.Make.t * 'a BatVect.Make.t val first : 'a BatVect.Make.t -> 'a val last : 'a BatVect.Make.t -> 'a val shift : 'a BatVect.Make.t -> 'a * 'a BatVect.Make.t val pop : 'a BatVect.Make.t -> 'a * 'a BatVect.Make.t val print : ?first:string -> ?last:string -> ?sep:string -> ('a BatInnerIO.output -> 'b -> unit) -> 'a BatInnerIO.output -> 'b BatVect.Make.t -> unit val invariants : 'a BatVect.Make.t -> unit end`