sig type t val make : bool -> Semaphore.Binary.t val release : Semaphore.Binary.t -> unit val acquire : Semaphore.Binary.t -> unit val try_acquire : Semaphore.Binary.t -> bool end