Proposal: Control.Concurrent.Async

wren ng thornton wren at
Sat Jun 16 07:24:31 CEST 2012

On 6/14/12 5:54 PM, Lauri Alanko wrote:
> Quoting "Simon Marlow" <marlowsd at>:
>> Naming is obviously up for discussion too.
> I feel that "Async" is a bit too generic and doesn't very precisely
> characterize this particular construct. How about "Future", as similar
> things are called in e.g. Alice
> <> and Java
> <>?

"Future" is a generic term for a particular way of thinking about the 
life cycle of variables (both in AliceML, Mozart/Oz, and in the 
literature). From this perspective *all* variables are futures. For 
example, in the AliceML url you provide, they specifically qualify the 
different kinds of futures:

* concurrent futures --- something like Async

* lazy futures --- what Haskell has by default

* promised futures --- for tying the knot; akin to "static" in Java

* immediate futures (not mentioned on the AliceML page) --- the standard 
all-at-once way of introducing, binding, and evaluating variables.

Of course, the concurrent/lazy/promised qualifiers can be combined since 
they define orthogonal axes of temporal distinction.

Live well,

More information about the Libraries mailing list