sig
  type +'a t
  val empty : 'a PriorityQueue.t
  val is_empty : 'a PriorityQueue.t -> bool
  val insert : int -> 'a -> 'a PriorityQueue.t -> 'a PriorityQueue.t
  val peek : 'a PriorityQueue.t -> 'a
  val remove_min : 'a PriorityQueue.t -> 'a PriorityQueue.t
end