C++ library for functional programming