A Concurrent Lambda Calculus with Futures

We introduce a new concurrent lambda calculus with futures,
lambda(fut), to model the operational semantics of Alice, a
concurrent extension of ML. lambda(fut) is a minimalist
extension of the call-by-value lambda-calculus that yields
the full expressiveness to define, combine, and implement
a variety of standard concurrency constructs such as channels,
semaphores, and ports. We present a linear type system for
lambda(fut) by which the safety of such definitions
and their combinations can be proved:
Well-typed implementations cannot be corrupted in any well-typed context.