> This technique is similar to currying functions, but because all arguments to the interface are named, one does not need to curry in any particular order. One could term it dynamic currying. All calls to a PMI function that supply arguments to the same invocation receive the same future as their value. A future is returned whenever some required arguments to the function have not been supplied to the interface by a function call. If a particular invocation of a function has returned a future, the value returned when all required arguments have been supplied is a realized future. This preserves the identity of all values returned for a particular invocation.