sig
  type elt
  type t
  val create : unit -> Lwt_pqueue.S.t
  val add : Lwt_pqueue.S.elt -> Lwt_pqueue.S.t -> unit
  val take : ?timeout:float -> Lwt_pqueue.S.t -> Lwt_pqueue.S.elt Lwt.t
  val size : Lwt_pqueue.S.t -> int
  val fold : ('-> Lwt_pqueue.S.elt -> 'a) -> '-> Lwt_pqueue.S.t -> 'a
end