On Wed, 2007-08-15 at 11:06 -0700, Stefan O'Rear wrote:
> > Why not just:
> >
> > sumTo0 = foldr (\0 k -> 0
> > n k -> n + k) 0
>> Because it would break a very large amount of old code, and I think H'
> was supposed to be upward compatible:
Aye, that'd be bad.
> foo = getSomethingCPS $ \ arg ->
> moreStuff
>> is now a syntax error (\ { varid -> } matches no productions).
I'm not sure I follow.
The patterns would have to match up in a column, so
foo = getSomethingCPS $ \ arg ->
moreStuff
should be fine, to add another alternative it'd have to be:
foo = getSomethingCPS $ \ Pat1 ->
moreStuff
Pat2 ->
evenMoreStuff
This case might be tricky though:
foo = getSomethingCPS $ \ Pat1 -> foo
moreStuff
since we have to parse all of the moreStuff expression before
discovering it has no following "->" and so it's party of the body of
the first lambda alternative rather than a pattern starting a new
alternative.
I'm no parsing expert (especially when it comes to layout rules),
perhaps this is all too tricky.
Duncan