Permitting trailing commas for record syntax ADT declarations

Roman Cheplyaka roma at
Tue Sep 23 08:26:35 UTC 2014

Note that there's another dimension to this question: whether this
pragma is switched on by default. We already have precedents like

So, if you mean heavy-weigth to use, not to implement, then this may
address your concern.

Now, with my haskell-src-exts maintainer hat on, things like this tend
to be problematic for us, because users assume that if ghc compiles a
program without any pragmas, so should HSE, which it currently doesn't.
Perhaps we should try to replicate GHC's default behavior in terms of
the default accepted language, too.

But as a GHC user, I agree that this extension is innocent enough to be
turned on by default. Still, Haskell 98 and Haskell 2010 should remain
immutable, in my opinion.

PS I just remembered that newer Cabals ask you to specify either
Haskell98 or Haskell2010, so that might make a turned-on-by-default
extension less useful and more confusing.

On 23/09/14 11:03, Johan Tibell wrote:
> I must say that requiring a language pragma makes the feature quite a bit
> more heavy weight. We're not changing the meaning of any existing programs,
> just allowing some new ones. One could argue that perhaps the HaskellXX
> standard might pick up this new pragma and thus making it unnecessary
> eventually, but the standardization process is dead (and even when it was
> alive, it was lagging actual practice enough that it was largely ignored.)
> On Tue, Sep 23, 2014 at 9:41 AM, Roman Cheplyaka <roma at> wrote:
>> On 23/09/14 10:11, Alexander Berntsen wrote:
>>> On 22/09/14 21:07, Simon Peyton Jones wrote:
>>>> have a language extension TrailingCommas (or something) to enable
>>>> the extension
>>> For clarification: are you overruling the "do we sneak it in HEAD or
>>> use pragma(s)"-vote and telling me to do the latter?
>>> If we can sneak it into HEAD (this is @ you Johan, too), I suggest
>>> that someone applies my patches to make import and export lists
>>> support leading commas (presently they only support trailing commas,
>>> per the report) -- and following this I can just send a bunch of
>>> "Permit leading/trailing ',' in Foo" patches to Phabricator, and you
>>> guys can bikeshed over there about which ones you actually want to
>>> commit. ;-)
>>> If I am to go down the pragma route, I guess I can make a
>>> RudundantCommas pragma or something like that, that implements
>>> trailing commas for imports/exports, and leading/trailing commas for
>>> the suggestions in this thread.
>>> I'm +1 on the GHC HEAD route, but I'm not exactly violently opposed to
>>> the pragma route either.
>> Here's my reasoning:
>> If you invoke ghc with -XHaskell2010, then trailing commas shouldn't be
>> accepted, because they do not belong to Haskell 2010.
>> Which means that you do need an extension to identify this difference in
>> behavior.
>> Roman

More information about the ghc-devs mailing list