sig
  type t
  val create : unit -> Condition.t
  val wait : Condition.t -> Mutex.t -> unit
  val signal : Condition.t -> unit
  val broadcast : Condition.t -> unit
end