sig   type 'a task   type 'a status = Timeout of int | Canceled | Result of 'a | Failed of exn   val error : exn -> string   val wait : 'a Task.task -> 'a Task.status   val map : ('a -> 'b) -> 'a Task.status -> 'b Task.status   val pretty :     (Format.formatter -> 'a -> unit) ->     Format.formatter -> 'a Task.status -> unit   val nop : unit Task.task   val return : 'a -> 'a Task.task   val raised : exn -> 'a Task.task   val canceled : unit -> 'a Task.task   val failed :     ('a, Format.formatter, unit, 'b Task.task) Pervasives.format4 -> 'a   val call : ('a -> 'b) -> 'a -> 'b Task.task   val todo : (unit -> 'a Task.task) -> 'a Task.task   val status : 'a Task.status -> 'a Task.task   val bind : 'a Task.task -> ('a Task.status -> 'b Task.task) -> 'b Task.task   val sequence : 'a Task.task -> ('a -> 'b Task.task) -> 'b Task.task   val job : 'a Task.task -> unit Task.task   val finally : 'a Task.task -> ('a Task.status -> unit) -> 'a Task.task   val callback : 'a Task.task -> ('a Task.status -> unit) -> unit Task.task   val ( >>> ) :     'a Task.task -> ('a Task.status -> 'b Task.task) -> 'b Task.task   val ( >>= ) : 'a Task.task -> ('a -> 'b Task.task) -> 'b Task.task   val ( >>? ) : 'a Task.task -> ('a Task.status -> unit) -> 'a Task.task   val ( >>! ) : 'a Task.task -> ('a Task.status -> unit) -> unit Task.task   type mutex   val mutex : unit -> Task.mutex   val sync : Task.mutex -> (unit -> 'a Task.task) -> 'a 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 -> 'a Task.task) -> 'a Task.shared   val share : 'a Task.shared -> 'a Task.task   type thread   val thread : 'a 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