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