OCaml library : Pqueue.MinPoly

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