[Haskell-cafe] how do I avoid excessive constructor application?