sig
  type elt
  type t
  val empty : Pqueue.S.t
  val is_empty : Pqueue.S.t -> bool
  val add : Pqueue.S.elt -> Pqueue.S.t -> Pqueue.S.t
  val union : Pqueue.S.t -> Pqueue.S.t -> Pqueue.S.t
  val find_min : Pqueue.S.t -> Pqueue.S.elt
  val remove_min : Pqueue.S.t -> Pqueue.S.t
  val size : Pqueue.S.t -> int
end