[Haskell-cafe] Cleaner way to write code and handle errors?