Module Future

module UUID : sig ... end
module UUIDMap : Stdlib.Map.S with type UUIDMap.key = UUID.t
module UUIDSet : Stdlib.Set.S with type UUIDSet.elt = UUID.t
exception NotReady of string
type 'a computation
type 'a value = [
| `Val of 'a
| `Exn of Exninfo.iexn
]
type fix_exn = Exninfo.iexn -> Exninfo.iexn
val create : fix_exn -> (unit -> 'a) -> 'a computation
val from_val : ?⁠fix_exn:fix_exn -> 'a -> 'a computation
val fix_exn_of : 'a computation -> fix_exn
type 'a assignment = [
| `Val of 'a
| `Exn of Exninfo.iexn
| `Comp of 'a computation
]
val create_delegate : ?⁠blocking:bool -> name:string -> fix_exn -> 'a computation * ('a assignment -> unit)
val replace : 'a computation -> 'a computation -> unit
val is_over : 'a computation -> bool
val is_val : 'a computation -> bool
val is_exn : 'a computation -> bool
val peek_val : 'a computation -> 'a option
val uuid : 'a computation -> UUID.t
val chain : 'a computation -> ('a -> 'b) -> 'b computation
val force : 'a computation -> 'a
val compute : 'a computation -> 'a value
val join : 'a computation -> 'a
val split2 : ('a * 'b) computation -> 'a computation * 'b computation
val map2 : ('a computation -> 'b -> 'c) -> 'a list computation -> 'b list -> 'c list
val print : ('a -> Pp.t) -> 'a computation -> Pp.t

Debug: print a computation given an inner printing function.

val customize_not_ready_msg : (string -> Pp.t) -> unit
val customize_not_here_msg : (string -> Pp.t) -> unit