sig type 'a t val create : unit -> 'a Lwt_condition.t val wait : ?mutex:Lwt_mutex.t -> 'a Lwt_condition.t -> 'a Lwt.t val signal : 'a Lwt_condition.t -> 'a -> unit val broadcast : 'a Lwt_condition.t -> 'a -> unit end