Removal candidates in patterns
duncan.coutts at worc.ox.ac.uk
Thu Jan 26 13:37:13 EST 2006
On Thu, 2006-01-26 at 17:31 +0000, Simon Peyton-Jones wrote:
> I agree that if (n+k) patterns go, then so should k patterns. Both are
> overloaded, and that's the root of their complexity.
I have to say that we use 'k' patterns in teaching all the time, though
we do not teach n+k patterns. There are lots of cases where it's
convenient to say:
foo 0 = ...
foo n = ...
Intuitively it seems reasonable to me that 1 is a constructor for the
Int type just as 'c' is a constructor for type Char, and since it's a
constructor we can pattern patch on it.
To be honest, the difficulty of the internal translation needed for
tools seems less important to me than the convenience for users. I don't
think the difference that character constants are not overloaded where
as numeric constants are overloaded causes any difficult in
understanding for users.
More information about the Haskell-prime