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