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