
Sebastian Sylvan wrote:
I would argue that most Haskell programmers would *never* write the various snippets of code demonstrated in this thread in your way,
I agree, too. I am not advocating that people should write code exactly that way in real life. My construction is meant to be a proof that pattern guards do not provide any significant simplification even in the worst case. In real life, the monadic approach usually leads to a significant simplification. I find that whenever I feel an urge to use a pattern guard, it is a sure sign that I have landed in the wrong monad. I step back and look again at my overall design, and the result is invariably much better code. And the urge goes away.
Adding syntactic sugar is cheap, as long as the core concepts are small and elegant.
The graveyard is littered with the remains of programming languages that took that approach and met an ignoble end. The entire language must remain small and elegant - not just the individual pieces of new syntax that are bolted on. Feature-creep is what eventually kills every programming language. Since Haskell is already a mature language as it first becomes adapted for general use, we need to be especially vigilant. -Yitz