[Haskell-cafe] How to improve below code?