sig
  type 'a t
  val create : int -> 'Squeue.t
  val push : 'Squeue.t -> '-> unit
  val push_uncond : 'Squeue.t -> '-> unit
  val push_or_drop : 'Squeue.t -> '-> bool
  val length : 'Squeue.t -> int
  val pop : 'Squeue.t -> 'a
  val lpop : 'Squeue.t -> 'a * int
  val transfer_queue_in : 'Squeue.t -> 'Core_kernel.Std.Queue.t -> unit
  val transfer_queue_in_uncond :
    'Squeue.t -> 'Core_kernel.Std.Queue.t -> unit
  val transfer_queue : 'Squeue.t -> 'Core_kernel.Std.Queue.t -> unit
  val transfer_queue_nowait :
    'Squeue.t -> 'Core_kernel.Std.Queue.t -> unit
  val clear : 'Squeue.t -> unit
  val wait_not_empty : 'Squeue.t -> unit
  val sexp_of_t : ('-> Sexplib.Sexp.t) -> 'Squeue.t -> Sexplib.Sexp.t
end