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