sig
type 'a t
val init : 'a option -> 'a Semaphore.t
val signal : 'a Semaphore.t -> 'a -> unit
val wait : 'a Semaphore.t -> 'a
val get : 'a Semaphore.t -> 'a option
val look : 'a Semaphore.t -> 'a option
val ounit_tests : unit -> OUnit.test
end