`(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`