(E : OrderedType) -> sig type t val create : unit -> t val length : t -> int val is_empty : t -> bool val add : t ->E.t -> unit val add_iter : t -> ((E.t -> unit) ->'x -> unit) ->'x -> unit val min_elt : t ->E.t option val get_min_elt : t ->E.t val pop_min : t ->E.t option val remove_min : t -> unit val clear : t -> unit val copy : t -> t val of_array : E.t array -> t val of_list : E.t list -> t val of_iter : ((E.t -> unit) ->'x -> unit) ->'x -> t val iter_unordered : (E.t -> unit) -> t -> unit val fold_unordered : ('acc ->E.t ->'acc) ->'acc -> t ->'acc end