[Haskell-cafe] Re: GHC Feature or Bug: f x = (`head` x, ())
Christian Maeder
Christian.Maeder at dfki.de
Wed Aug 6 08:40:46 EDT 2008
Jeremy Shaw wrote:
> Hello,
>
> GHC is happy to compile this code:
>
>> f x = (`head` x, ())
Also
(+ x, ())
((), + x)
((), + x, ())
are accepted by GHC
This looks like a bug to me, because
(+, ())
((), x +)
are rejected.
Sections need to be in parens.
If one allows sections as tuple components, then the latter should may
be made legal, too.
Cheers Christian
>
> but Hugs does not like it, and Section 3.5 of the Haskell Report does
> not give any obvious indications that it is valid. Numerous people
> have suggested that some additional parens are required:
>
>> f x = ((`head` x), ())
>
> Is this GHC behavior intentional? If not, is it perhaps a happy
> accident? Or is it ambigious in some way with out the additional
> parenthesis ?
>
> I am curious because trhsx (the preprocessor for HSP/HSX) currently
> does not accept this construct. If it is a bug in GHC (that will
> eventually be fixed), then we can leave trhsx alone. If it is a
> feature, then a precise definition of the adjusted syntax would be
> helpful. (Or, if this construct is valid H98, an explaination of how
> to read the report correctly).
>
> Thanks!
> j.
More information about the Haskell-Cafe
mailing list