sig
module type OrderedType =
sig
type t
val compare : Pqueue.OrderedType.t -> Pqueue.OrderedType.t -> int
end
module type S =
sig
type elt
type t
val empty : Pqueue.S.t
val is_empty : Pqueue.S.t -> bool
val add : Pqueue.S.elt -> Pqueue.S.t -> Pqueue.S.t
val union : Pqueue.S.t -> Pqueue.S.t -> Pqueue.S.t
val find_min : Pqueue.S.t -> Pqueue.S.elt
val remove_min : Pqueue.S.t -> Pqueue.S.t
val size : Pqueue.S.t -> int
val fold : ('a -> Pqueue.S.elt -> 'a) -> 'a -> Pqueue.S.t -> 'a
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 remove_min : t -> t
val size : t -> int
val fold : ('a -> elt -> 'a) -> 'a -> t -> 'a
end
end