
The n+k pattern issue inspired endless debates on the Haskell committee and this feature was considered for removal in nearly every iteration of the Haskell report. We all agreed that n+k is extremely ad-hoc but that certain programs can be expressed slightly more elegantly using them. Unfortunately n+k doesn't match against negative numbers, so let n+1 = ... in .... n ... is not the same as let n = .... in .... (n-1) ... Of course n+k was designed for natural numbers but these are not a separate numeric type so you get a certain amount of confusion. One proposal was to make naturals a distinct type and restrict n+k to only naturals. The syntactic issues surrounding n+k are truely awful and I still have to look at the report to remember what happens with these: n+1 = 2 (n+1) = 2 A lot of people would have been happy to replace n+k by some view-like mechanism that gives the user control over the meaning of n+k but we never managed to get views into the report. John