type 'a t type 'a ivar val return : 'a -> 'a t val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t val ( >>| ) : 'a t -> ('a -> 'b) -> 'b t val ( >>> ) : unit t -> unit t -> unit t val both : 'a t -> 'b t -> ('a * 'b) t val fork : (unit -> 'a t) -> 'a ivar t val fork_and_join : (unit -> 'a t) -> (unit -> 'b t) -> ('a * 'b) t val fork_and_join_unit : (unit -> unit t) -> (unit -> unit t) -> unit t val parallel_map : 'a list -> f:('a -> 'b t) -> 'b list t val parallel_iter : 'a list -> f:('a -> unit t) -> unit t val run_process : (unit -> 'a) -> ('a, int) result t val run : 'a t -> 'a val set_concurrency : int -> unit val get_concurrency : unit -> int