sig
  type t
  val create : unit -> Bwd.PriorityNodeQueue.t
  val pop : Bwd.PriorityNodeQueue.t -> Node.t
  val push : Node.t -> Bwd.PriorityNodeQueue.t -> unit
  val push_list : Node.t list -> Bwd.PriorityNodeQueue.t -> unit
  val clear : Bwd.PriorityNodeQueue.t -> unit
  val length : Bwd.PriorityNodeQueue.t -> int
  val is_empty : Bwd.PriorityNodeQueue.t -> bool
end