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