type 'a t = 'a Concurrent.Thread.tval bind : 'a t -> ( 'a -> 'b t ) -> 'b tval both : 'a t -> 'b t -> ('a * 'b) tval join : unit t list -> unit tval pick : 'a t list -> 'a tval choose : 'a t list -> 'a tval async : ( unit -> unit t ) -> unitval cancel : 'a t -> unitval sleep : float -> unit t