sig
type 'a t = 'a array
val filterInPlace : ('a -> bool [@bs]) -> 'a Js_vector.t -> unit
val empty : 'a Js_vector.t -> unit
val pushBack : 'a -> 'a Js_vector.t -> unit
val copy : 'a Js_vector.t -> 'a Js_vector.t
val memByRef : 'a -> 'a Js_vector.t -> bool
val iter : ('a -> unit [@bs]) -> 'a Js_vector.t -> unit
val iteri : (int -> 'a -> unit [@bs]) -> 'a Js_vector.t -> unit
val ofList : 'a list -> 'a Js_vector.t
val toList : 'a Js_vector.t -> 'a list
val map : ('a -> 'b [@bs]) -> 'a Js_vector.t -> 'b Js_vector.t
val mapi : (int -> 'a -> 'b [@bs]) -> 'a Js_vector.t -> 'b Js_vector.t
val foldLeft : ('a -> 'b -> 'a [@bs]) -> 'a -> 'b Js_vector.t -> 'a
val foldRight : ('b -> 'a -> 'a [@bs]) -> 'b Js_vector.t -> 'a -> 'a
external length : 'a Js_vector.t -> int = "%array_length"
external get : 'a Js_vector.t -> int -> 'a = "%array_safe_get"
external set : 'a Js_vector.t -> int -> 'a -> unit = "%array_safe_set"
external make : int -> 'a -> 'a Js_vector.t = "caml_make_vect"
val init : int -> (int -> 'a [@bs]) -> 'a Js_vector.t
val append : 'a -> 'a Js_vector.t -> 'a Js_vector.t
external unsafe_get : 'a Js_vector.t -> int -> 'a = "%array_unsafe_get"
external unsafe_set : 'a Js_vector.t -> int -> 'a -> unit
= "%array_unsafe_set"
end