The programming paradigm of the STL goes very well with the future
abstraction described above. For instance, future objects can be
created out of arbitrary function objects.  STL
has adaptors to convert N-ary function pointers to N-ary function
objects where N = 1, 2. Function objects and adapters for 
N = 3, 4,  can be easily built. Coir<Futures> defines adaptors that
convert N-ary function pointers to 
future N-ary function objects. This is done using the following two
constructs 
: