
Note that there's another dimension to this question: whether this pragma is switched on by default. We already have precedents like NondecreasingIndentation. 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
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