functor (Ord : ORD) ->
sig
type 'a t
type key = Ord.t
exception Empty
val create : unit -> 'a t
val clear : 'a t -> unit
val is_empty : 'a t -> bool
val top : 'a t -> 'a
val pop : 'a t -> 'a
val push : key -> 'a -> 'a t -> unit
val string_of : ('a -> string) -> 'a t -> string
end