refactoring haskell programs sucks