Function objects for more convenient higher order passing.
Curry now works on std::function.
Some unit tests for the prelude.