sig
  type t
  type elt
  val create : unit -> Pqueue.Max.t
  val length : Pqueue.Max.t -> int
  val is_empty : Pqueue.Max.t -> bool
  val add : Pqueue.Max.t -> Pqueue.Max.elt -> unit
  val add_iter :
    Pqueue.Max.t -> ((Pqueue.Max.elt -> unit) -> '-> unit) -> '-> unit
  val max_elt : Pqueue.Max.t -> Pqueue.Max.elt option
  val get_max_elt : Pqueue.Max.t -> Pqueue.Max.elt
  val pop_max : Pqueue.Max.t -> Pqueue.Max.elt option
  val remove_max : Pqueue.Max.t -> unit
  val clear : Pqueue.Max.t -> unit
  val copy : Pqueue.Max.t -> Pqueue.Max.t
  val of_array : Pqueue.Max.elt array -> Pqueue.Max.t
  val of_list : Pqueue.Max.elt list -> Pqueue.Max.t
  val of_iter :
    ((Pqueue.Max.elt -> unit) -> '-> unit) -> '-> Pqueue.Max.t
  val iter_unordered : (Pqueue.Max.elt -> unit) -> Pqueue.Max.t -> unit
  val fold_unordered :
    ('acc -> Pqueue.Max.elt -> 'acc) -> 'acc -> Pqueue.Max.t -> 'acc
end