type 'a t = {mutable dummy : 'a;mutable data : 'a array;mutable sz : int;
}val make : int -> 'a -> 'a tval init : int -> (int -> 'a) -> 'a -> 'a tval from_array : 'a array -> int -> 'a -> 'a tval from_list : 'a list -> int -> 'a -> 'a tval shrink : 'a t -> int -> bool -> unitval is_empty : 'a t -> boolval grow_to : 'a t -> int -> unitval grow_to_double_size : 'a t -> unitval grow_to_by_double : 'a t -> int -> unitval is_full : 'a t -> boolval push : 'a t -> 'a -> unitval push_none : 'a t -> unitval get : 'a t -> int -> 'aval set : 'a t -> int -> 'a -> unitval set_size : 'a t -> int -> unitval move_to : 'a t -> 'a t -> unitval remove : 'a t -> 'a -> unitval fast_remove : 'a t -> 'a -> unitval sort : 'a t -> ('a -> 'a -> int) -> unitval iter : 'a t -> ('a -> unit) -> unit