sig
module type DATA =
sig
type t
val compare : PrioQueue.DATA.t -> PrioQueue.DATA.t -> int
val hash : PrioQueue.DATA.t -> int
val string_of : PrioQueue.DATA.t -> string
end
module type S =
sig
type t
type key
type data
exception Empty
val create : unit -> PrioQueue.S.t
val clear : PrioQueue.S.t -> unit
val is_empty : PrioQueue.S.t -> bool
val top : PrioQueue.S.t -> PrioQueue.S.data
val pop : PrioQueue.S.t -> PrioQueue.S.data
val push : PrioQueue.S.key -> PrioQueue.S.data -> PrioQueue.S.t -> unit
val string_of : PrioQueue.S.t -> string
val remove : PrioQueue.S.data -> PrioQueue.S.t -> unit
end
module Make :
functor (Ord : ProglangUtils.PrioQueues.ORD) ->
functor (Data : DATA) ->
sig
type t
type key = Ord.t
type data = Data.t
exception Empty
val create : unit -> t
val clear : t -> unit
val is_empty : t -> bool
val top : t -> data
val pop : t -> data
val push : key -> data -> t -> unit
val string_of : t -> string
val remove : data -> t -> unit
end
end