sig
  val init : int -> f:(int -> 'a) -> 'BatVect.Make.t
  val get : 'BatVect.Make.t -> n:int -> 'a
  val at : 'BatVect.Make.t -> n:int -> 'a
  val set : 'BatVect.Make.t -> n:int -> elem:'-> 'BatVect.Make.t
  val modify :
    'BatVect.Make.t -> n:int -> f:('-> 'a) -> 'BatVect.Make.t
  val destructive_set : 'BatVect.Make.t -> n:int -> elem:'-> unit
  val sub : 'BatVect.Make.t -> m:int -> n:int -> 'BatVect.Make.t
  val insert :
    n:int -> sub:'BatVect.Make.t -> 'BatVect.Make.t -> 'BatVect.Make.t
  val remove : m:int -> n:int -> 'BatVect.Make.t -> 'BatVect.Make.t
  val iter : f:('-> unit) -> 'BatVect.Make.t -> unit
  val iteri : f:(int -> '-> unit) -> 'BatVect.Make.t -> unit
  val rangeiter :
    f:('-> unit) -> m:int -> n:int -> 'BatVect.Make.t -> unit
  val fold_left : f:('-> '-> 'b) -> init:'-> 'BatVect.Make.t -> 'b
  val fold : f:('-> '-> 'b) -> init:'-> 'BatVect.Make.t -> 'b
  val reduce : f:('-> '-> 'a) -> 'BatVect.Make.t -> 'a
  val fold_right : f:('-> '-> 'b) -> 'BatVect.Make.t -> init:'-> 'b
  val foldi : f:(int -> '-> '-> 'b) -> init:'-> 'BatVect.Make.t -> 'b
  val map : f:('-> 'b) -> 'BatVect.Make.t -> 'BatVect.Make.t
  val mapi : f:(int -> '-> 'b) -> 'BatVect.Make.t -> 'BatVect.Make.t
  val for_all : f:('-> bool) -> 'BatVect.Make.t -> bool
  val exists : f:('-> bool) -> 'BatVect.Make.t -> bool
  val find : f:('-> bool) -> 'BatVect.Make.t -> 'a
  val mem : elem:'-> 'BatVect.Make.t -> bool
  val memq : elem:'-> 'BatVect.Make.t -> bool
  val findi : f:('-> bool) -> 'BatVect.Make.t -> int
  val filter : f:('-> bool) -> 'BatVect.Make.t -> 'BatVect.Make.t
  val filter_map :
    f:('-> 'b option) -> 'BatVect.Make.t -> 'BatVect.Make.t
  val find_all : f:('-> bool) -> 'BatVect.Make.t -> 'BatVect.Make.t
  val partition :
    f:('-> bool) ->
    'BatVect.Make.t -> 'BatVect.Make.t * 'BatVect.Make.t
end