sig
  type 'a t
  type key
  exception Empty
  val create : unit -> 'PrioQueues.S.t
  val clear : 'PrioQueues.S.t -> unit
  val is_empty : 'PrioQueues.S.t -> bool
  val top : 'PrioQueues.S.t -> 'a
  val pop : 'PrioQueues.S.t -> 'a
  val push : PrioQueues.S.key -> '-> 'PrioQueues.S.t -> unit
  val string_of : ('-> string) -> 'PrioQueues.S.t -> string
end