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