sig
  type 'a t
  val create : unit -> 'a Vector.t
  val length : 'a Vector.t -> int
  val size : 'a Vector.t -> int
  val get : 'a Vector.t -> int -> 'a
  val set : 'a Vector.t -> int -> 'a -> unit
  val add : 'a Vector.t -> 'a -> unit
  val addi : 'a Vector.t -> 'a -> int
  val clear : 'a Vector.t -> unit
  val iter : ('a -> unit) -> 'a Vector.t -> unit
  val iteri : (int -> 'a -> unit) -> 'a Vector.t -> unit
  val map : ('a -> 'b) -> 'a Vector.t -> 'b Vector.t
  val mapi : (int -> 'a -> 'b) -> 'a Vector.t -> 'b Vector.t
  val find : 'a Vector.t -> ?default:'a -> ?exn:exn -> int -> 'a
  val update : 'a Vector.t -> default:'a -> int -> 'a -> unit
  val to_array : 'a Vector.t -> 'a array
  val of_array : 'a array -> 'a Vector.t
  val capacity : 'a Vector.t -> int
  val resize : 'a Vector.t -> int -> unit
  val shrink : 'a Vector.t -> unit
end