http://bartoszmilewski.com/2009/10/21/what-does-haskell-have-to-do-with-c/