sig
  type 'a t
  val invariant : 'Invariant_intf.inv -> 'a t Invariant_intf.inv
  val create : unit -> 'Thread_safe_queue.t
  val length : 'Thread_safe_queue.t -> int
  val enqueue : 'Thread_safe_queue.t -> '-> unit
  val dequeue_exn : 'Thread_safe_queue.t -> 'a
  val clear_internal_pool : 'Thread_safe_queue.t -> unit
  val sexp_of_t :
    ('-> Sexplib.Sexp.t) -> 'Thread_safe_queue.t -> Sexplib.Sexp.t
end