Call to arms: lambda-case is stuck and needs your help

Simon Marlow marlowsd at gmail.com
Tue Jul 10 10:10:18 CEST 2012


On 10/07/2012 07:33, Mikhail Vorozhtsov wrote:
> On 07/10/2012 01:09 AM, Bardur Arantsson wrote:
>> On 07/09/2012 06:01 PM, Mikhail Vorozhtsov wrote:
>>> On 07/09/2012 09:52 PM, Twan van Laarhoven wrote:
>>>> On 09/07/12 14:44, Simon Marlow wrote:
>>>>> I now think '\' is too quiet to introduce a new layout context.  The
>>>>> pressing
>>>>> need is really for a combination of '\' and 'case', that is
>>>>> single-argument so
>>>>> that we don't have to write parentheses.  I think '\case' does the job
>>>>> perfectly.  If you want a multi-clause multi-argument function, then
>>>>> give it a
>>>>> name.
>>>>
>>>> There is an advantage here for "\of" in favor of "\case", namely that
>>>> "of" already introduces layout, while "case" does not.
>>> Do you think that adding "\" + "case" as a layout herald would
>>> complicate the language spec and/or confuse users? Because it certainly
>>> does not complicate the implementation (there is a patch for \case
>>> already).
>>
>> Just being anal here, but: The existence of a patch to implement X does
>> not mean that X doesn't complicate the implemenatation.
> In general, yes. But that particular patch[1] uses ~20 lines of pretty
> straightforward (if I'm allowed to say that about the code I wrote
> myself) code to handle layout. Which in my book is not complex at all.
>
> [1]
> http://hackage.haskell.org/trac/ghc/attachment/ticket/4359/one-arg-lambda-case.patch

The need to keep track of the previous token in the lexer *is* ugly though.

Cheers,
	Simon



More information about the Glasgow-haskell-users mailing list