A haskell-style functional progarmming library for C++