`sig
module type OrderedType =
sig
type t
val compare :
Lwt_pqueue.OrderedType.t -> Lwt_pqueue.OrderedType.t -> int
end
module type S =
sig
type elt
type t
val empty : Lwt_pqueue.S.t
val is_empty : Lwt_pqueue.S.t -> bool
val add : Lwt_pqueue.S.elt -> Lwt_pqueue.S.t -> Lwt_pqueue.S.t
val union : Lwt_pqueue.S.t -> Lwt_pqueue.S.t -> Lwt_pqueue.S.t
val find_min : Lwt_pqueue.S.t -> Lwt_pqueue.S.elt
val lookup_min : Lwt_pqueue.S.t -> Lwt_pqueue.S.elt option
val remove_min : Lwt_pqueue.S.t -> Lwt_pqueue.S.t
val size : Lwt_pqueue.S.t -> int
end
module Make :
functor (Ord : OrderedType) ->
sig
type elt = Ord.t
type t
val empty : t
val is_empty : t -> bool
val add : elt -> t -> t
val union : t -> t -> t
val find_min : t -> elt
val lookup_min : t -> elt option
val remove_min : t -> t
val size : t -> int
end
end`