I'm learning a haskell for a great good