# Functor Pqueue.MakeMinPoly

    module MakeMinPoly: functor (E : OrderedPolyType) -> MinPoly  with type 'a elt := 'a E.t

Functor building an implementation of min-priority queues given a totally ordered type for the elements.

Parameters: |
`E` | : | `OrderedPolyType`

    type 'a t

    type 'a elt

    val create : unit -> 'a t

    val length : 'a t -> int

    val is_empty : 'a t -> bool

    val add : 'a t -> 'a elt -> unit

    val add_iter : 'a t ->
           (('a elt -> unit) -> 'x -> unit) -> 'x -> unit

    val min_elt : 'a t -> 'a elt option

    val get_min_elt : 'a t -> 'a elt

    val pop_min : 'a t -> 'a elt option

    val remove_min : 'a t -> unit

    val clear : 'a t -> unit

    val copy : 'a t -> 'a t

    val of_array : 'a elt array -> 'a t

    val of_list : 'a elt list -> 'a t

    val of_iter : (('a elt -> unit) -> 'x -> unit) -> 'x -> 'a t

    val iter_unordered : ('a elt -> unit) -> 'a t -> unit

    val fold_unordered : ('acc -> 'a elt -> 'acc) ->
           'acc -> 'a t -> 'acc