sig   type 'a t   type 'a state = [ `Det of '| `Never | `Undet ]   type 'a set = [ `Det of '| `Never ]   val state : 'Fut.t -> 'Fut.state   val state_set : 'Fut.t -> 'Fut.set   val await : ?timeout:float -> 'Fut.t -> 'Fut.state   val sync : 'Fut.t -> 'Fut.set   val finally : ('-> 'b) -> '-> 'Fut.t -> 'Fut.t   val never : unit -> 'Fut.t   val ret : '-> 'Fut.t   val recover : 'Fut.t -> [ `Det of '| `Never ] Fut.t   val bind : 'Fut.t -> ('-> 'Fut.t) -> 'Fut.t   val app : ('-> 'b) Fut.t -> 'Fut.t -> 'Fut.t   val map : ('-> 'b) -> 'Fut.t -> 'Fut.t   val ignore : 'Fut.t -> unit Fut.t   val fold : ('-> '-> 'a) -> '-> 'Fut.t list -> 'Fut.t   val sustain : 'Fut.t -> 'Fut.t -> 'Fut.t   val first : 'Fut.t -> 'Fut.t -> ('a * 'Fut.t) Fut.t   val firstl : 'Fut.t list -> ('a * 'Fut.t list) Fut.t   val abort : 'Fut.t -> unit   val protect : 'Fut.t -> 'Fut.t   val pick : 'Fut.t -> 'Fut.t -> 'Fut.t   val pickl : 'Fut.t list -> 'Fut.t   type 'a promise   val promise : ?abort:(unit -> unit) -> unit -> 'Fut.promise   val future : 'Fut.promise -> 'Fut.t   val set : 'Fut.promise -> [ `Det of '| `Never ] -> unit   type queue   module Queue :     sig       type t = Fut.queue       val concurrent : Fut.queue       val create : ?label:string -> unit -> Fut.queue       val label : Fut.queue -> string     end   val apply :     ?queue:Fut.queue ->     ?abort:bool Pervasives.ref -> ('-> 'b) -> '-> 'Fut.t   exception Never   val delay : float -> float Fut.t   val tick : float -> unit Fut.t   module Sem :     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   type ('a, 'b) result = [ `Error of '| `Ok of 'a ]   type ('a, 'b) status = ('a, 'b) Fut.result Fut.t   val sbind :     ('a, 'c) Fut.status -> ('-> ('b, 'c) Fut.status) -> ('b, 'c) Fut.status   val ok : '-> ('a, 'b) Fut.status   val error : '-> ('a, 'b) Fut.status   val ( >>= ) : 'Fut.t -> ('-> 'Fut.t) -> 'Fut.t   val ( >>| ) : 'Fut.t -> ('-> 'b) -> 'Fut.t   val ( >>& ) :     ('a, 'c) Fut.status -> ('-> ('b, 'c) Fut.status) -> ('b, 'c) Fut.status   module Op :     sig       val ( >>= ) : 'Fut.t -> ('-> 'Fut.t) -> 'Fut.t       val ( >>| ) : 'Fut.t -> ('-> 'b) -> 'Fut.t       val ( >>& ) :         ('a, 'c) Fut.status ->         ('-> ('b, 'c) Fut.status) -> ('b, 'c) Fut.status     end   module Runtime :     sig       val name : string       type exn_ctx =           [ `Backend           | `Exn_trap           | `Fd_action           | `Finalizer           | `Future           | `Queue of string           | `Runtime_action           | `Signal_action           | `Timer_action ]       type exn_info = Fut.Runtime.exn_ctx * exn * Printexc.raw_backtrace       val set_exn_trap : (Fut.Runtime.exn_info -> unit) -> unit       val pp_exn_info : Format.formatter -> Fut.Runtime.exn_info -> unit       type abort = unit -> unit       val action : (unit -> unit) -> unit       val signal_action :         int -> (Fut.Runtime.abort -> (int -> unit) * 'a) -> 'a       val timer_action :         float -> (Fut.Runtime.abort -> (float -> unit) * 'a) -> 'a       val fd_action :         [ `R | `W ] -> Unix.file_descr -> (bool -> unit) -> unit       val fd_close : Unix.file_descr -> unit       val worker_count : unit -> int       val set_worker_count : int -> unit     end end