sig type 'a t = 'a Thread_safe_queue.t val create : unit -> 'a t val create' : unit -> (unit -> 'a option) * ('a -> unit) val dequeue : 'a t -> 'a option val enqueue : 'a t -> 'a -> unit end