sig   type 'a future = 'Fut.t   type token   type t   val create : capacity:int -> Fut.Sem.t   val capacity : Fut.Sem.t -> int   val available : Fut.Sem.t -> int   val take : Fut.Sem.t -> Fut.Sem.token Fut.Sem.future   val return : Fut.Sem.t -> Fut.Sem.token -> unit end