I can see the arguments for the pattern guard extension and the syntax
seem reasonable.
I also agree with Chris on the shortcomings of if-then-else. (I have
disliked it in any language where I've seen it, and it "feels"
un-Haskell-like to me.) On the other hand, the suggested
case
| ... -> ...
syntax seems confusing (overloads `case') and redundant (we don't need
a SML-like `|', we have layout rules). Although its origin is the
case expression, the special syntax is a witness to the fact that it
is different. Something like
cond
x == y -> same x
x == y*2 -> haly x
.....
otherwise -> default x
would be much easier on my stomach.
My only worry is that Haskell (if not already) is turning into the C++
of functional languages, ie. feature upon feature. Haskell is already
quite a mouthfull to learn.
/Tommy