sig
  type 'a t
  exception Timeout
  val create : unit -> 'Lwt_queue.t
  val add : '-> 'Lwt_queue.t -> unit
  val take : ?timeout:float -> 'Lwt_queue.t -> 'Lwt.t
end