sig
  type 'a t
  type 'a priority_queue = 'Timing_wheel_intf.S.Priority_queue.t
  module Elt :
    sig
      type 'a t
      val invariant :
        'Timing_wheel_intf.S.Priority_queue.priority_queue ->
        'Invariant.t ->
        'Timing_wheel_intf.S.Priority_queue.Elt.t Invariant.t
      val key :
        'Timing_wheel_intf.S.Priority_queue.priority_queue ->
        'Timing_wheel_intf.S.Priority_queue.Elt.t -> int
      val value :
        'Timing_wheel_intf.S.Priority_queue.priority_queue ->
        'Timing_wheel_intf.S.Priority_queue.Elt.t -> 'a
      val sexp_of_t :
        ('-> Sexplib.Sexp.t) ->
        'Timing_wheel_intf.S.Priority_queue.Elt.t -> Sexplib.Sexp.t
    end
  val invariant :
    'Core_kernel.Invariant_intf.inv -> 'a t Core_kernel.Invariant_intf.inv
  val create :
    ?level_bits:Timing_wheel_intf.S.Level_bits.t ->
    dummy:'-> unit -> 'Timing_wheel_intf.S.Priority_queue.t
  val length : 'Timing_wheel_intf.S.Priority_queue.t -> int
  val is_empty : 'Timing_wheel_intf.S.Priority_queue.t -> bool
  val max_representable_key : int
  val min_allowed_key : 'Timing_wheel_intf.S.Priority_queue.t -> int
  val max_allowed_key : 'Timing_wheel_intf.S.Priority_queue.t -> int
  val min_elt :
    'Timing_wheel_intf.S.Priority_queue.t ->
    'Timing_wheel_intf.S.Priority_queue.Elt.t option
  val min_key : 'Timing_wheel_intf.S.Priority_queue.t -> int option
  val add :
    'Timing_wheel_intf.S.Priority_queue.t ->
    key:int -> '-> 'Timing_wheel_intf.S.Priority_queue.Elt.t
  val remove :
    'Timing_wheel_intf.S.Priority_queue.t ->
    'Timing_wheel_intf.S.Priority_queue.Elt.t -> unit
  val increase_min_allowed_key :
    'Timing_wheel_intf.S.Priority_queue.t ->
    key:int ->
    handle_removed:('Timing_wheel_intf.S.Priority_queue.Elt.t -> unit) ->
    unit
  val iter :
    'Timing_wheel_intf.S.Priority_queue.t ->
    f:('Timing_wheel_intf.S.Priority_queue.Elt.t -> unit) -> unit
  val sexp_of_t :
    ('-> Sexplib.Sexp.t) ->
    'Timing_wheel_intf.S.Priority_queue.t -> Sexplib.Sexp.t
end