sig   type 'a task   type 'a status = Timeout of int | Canceled | Result of '| Failed of exn   val error : exn -> string   val wait : 'Task.task -> 'Task.status   val map : ('-> 'b) -> 'Task.status -> 'Task.status   val pretty :     (Format.formatter -> '-> unit) ->     Format.formatter -> 'Task.status -> unit   val nop : unit Task.task   val return : '-> 'Task.task   val raised : exn -> 'Task.task   val canceled : unit -> 'Task.task   val failed :     ('a, Format.formatter, unit, 'Task.task) Pervasives.format4 -> 'a   val call : ('-> 'b) -> '-> 'Task.task   val todo : (unit -> 'Task.task) -> 'Task.task   val status : 'Task.status -> 'Task.task   val bind : 'Task.task -> ('Task.status -> 'Task.task) -> 'Task.task   val sequence : 'Task.task -> ('-> 'Task.task) -> 'Task.task   val job : 'Task.task -> unit Task.task   val finally : 'Task.task -> ('Task.status -> unit) -> 'Task.task   val callback : 'Task.task -> ('Task.status -> unit) -> unit Task.task   val ( >>> ) :     'Task.task -> ('Task.status -> 'Task.task) -> 'Task.task   val ( >>= ) : 'Task.task -> ('-> 'Task.task) -> 'Task.task   val ( >>? ) : 'Task.task -> ('Task.status -> unit) -> 'Task.task   val ( >>! ) : 'Task.task -> ('Task.status -> unit) -> unit Task.task   type mutex   val mutex : unit -> Task.mutex   val sync : Task.mutex -> (unit -> 'Task.task) -> 'Task.task   val command :     ?timeout:int ->     ?time:float Pervasives.ref ->     ?stdout:Buffer.t ->     ?stderr:Buffer.t -> string -> string array -> int Task.task   type 'a shared   val shared :     descr:string -> retry:bool -> (unit -> 'Task.task) -> 'Task.shared   val share : 'Task.shared -> 'Task.task   type thread   val thread : 'Task.task -> Task.thread   val cancel : Task.thread -> unit   val running : Task.thread -> bool   val run : Task.thread -> unit   type pool   val pool : unit -> Task.pool   val add : Task.pool -> Task.thread -> unit   val iter : (Task.thread -> unit) -> Task.pool -> unit   val flush : Task.pool -> unit   val size : Task.pool -> int   type server   val server : ?stages:int -> ?procs:int -> unit -> Task.server   val spawn :     Task.server -> ?pool:Task.pool -> ?stage:int -> Task.thread -> unit   val launch : Task.server -> unit   val cancel_all : Task.server -> unit   val set_procs : Task.server -> int -> unit   val on_server_activity : Task.server -> (unit -> unit) -> unit   val on_server_start : Task.server -> (unit -> unit) -> unit   val on_server_stop : Task.server -> (unit -> unit) -> unit   val on_server_wait : Task.server -> (unit -> unit) -> unit   val scheduled : Task.server -> int   val terminated : Task.server -> int   val waiting : Task.server -> int option   val on_idle : ((unit -> bool) -> unit) Pervasives.ref end