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