`(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 max_elt : t -> E.t option
val get_max_elt : t -> E.t
val pop_max : t -> E.t option
val remove_max : 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`