Learning me a haskell for great good