`B0_std.Fut`

Future values.

A future is an undetermined value that becomes determined at an an arbitrary point in the future. The future acts as a placeholder for the value while it is undetermined.

`val make : unit -> 'a t * ('a -> unit)`

`make ()`

is `(f, set)`

with `f`

the future value and `set`

the function to `set`

it. The latter can be called only once, `Invalid_argument`

is raised otherwise.

`val await : 'a t -> ('a -> unit) -> unit`

`await f k`

waits for `f`

to be determined and continues with `k v`

with `v`

the value of the future. If the future never determines `k`

is not invoked. `k`

must not raise.

`val value : 'a t -> 'a option`

`value f`

is `f`

's value, if any.

`val sync : 'a t -> 'a`

`sync f`

waits for `f`

to determine. **Warning.** This is relaxed busy waiting.

`val return : 'a -> 'a t`

`return v`

is a future that determines `v`

.

`of_list fs`

determines with the values of all `fs`

, in the same order.

`module Syntax : sig ... end`

Future syntax.