The *(term) for a place-holder for the undetermined result of a (_(concurrent)) computation. Once the computation delivers a result, the associated future is eliminated by replacing it with the result value. That value may be a future on its own.

Attempting to access a future generally results in blocking until the computation is complete. There are three kinds of behaviors for futures: <em>concurrent</em> (which runs concurrently), <em>lazy</em> (which is computed when requested transparently), and <em>promised</em> (for which the operation calculating it is explicit).

Futures are analogous to logical variables.
