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 :