functor (R : RANDOMACCESS->
  functor (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 to_list : 'BatVect.Make.t -> 'a list
      val make : int -> '-> '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 : int -> 'BatVect.Make.t -> 'a
      val set : 'BatVect.Make.t -> int -> '-> 'BatVect.Make.t
      val sub : int -> int -> 'BatVect.Make.t -> '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 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 : ('-> '-> 'a) -> '-> 'BatVect.Make.t -> 'a
      val fold : ('-> '-> 'a) -> '-> 'BatVect.Make.t -> 'a
      val fold_right : ('-> '-> '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 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 print :
        ?first:string ->
        ?last:string ->
        ?sep:string ->
        ('BatInnerIO.output -> '-> unit) ->
        'BatInnerIO.output -> 'BatVect.Make.t -> unit
    end