<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">As I have said previously, I strongly agree with Simon on that we need to make some editorial decisions.<div class=""><br class=""></div><div class="">Concerning the general proposal, I think, the convenience of trailing commas is a consequence of insufficient editor support and IMHO it’d be better to improve that support rather than applying band-aids to the language. However, I can live with the extensions as long as their is no conflict with TupleSections.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Manuel<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">Am 24.04.2019 um 09:30 schrieb Simon Marlow <<a href="mailto:marlowsd@gmail.com" class="">marlowsd@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">I'm also strongly against mutually incompatible extensions. <br class=""></div><div class=""><br class=""></div><div class="">I'm not sure about allowing the combination of TupleSections and ExtraCommas. It would mean that (x,) has a different meaning depending on what extensions are in force. This is a pretty strange direction to take the language in, and raises questions about whether we should think of GHC as a testing ground for language extensions of which only some will eventually make it into a language standard, or whether we should take a position on which extensions are sensible when there are conflicts. Personally I'm in favour of the committee taking some editorial decisions here - not just assessing which extensions make sense in isolation, but considering whether an extension makes sense in the context of the other extensions we already have.</div><div class=""><br class=""></div><div class="">But back to the current proposal, I would vote for allowing the parts of the proposal that don't conflict with TupleSections.<br class=""></div><div class=""><br class=""></div><div class="">Cheers</div><div class="">Simon<br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 18 Apr 2019 at 16:06, Richard Eisenberg <<a href="mailto:rae@richarde.dev" class="">rae@richarde.dev</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I strongly dislike the idea of mutually-incompatible extensions.<br class="">
<br class="">
We could say that ExtraCommas allows extra commas everywhere, including in tuples and lists. We could also say that TupleSections overrides this behavior in tuples and gives it new meaning. We could further imagine ListSections that would override the behavior in lists. To me, this is preferable than mutual incompatibility.<br class="">
<br class="">
Does this make for a nice user experience? I'm not sure. Happily, the reinterpretation from TupleSections or ListSections would change types, so you'd get errors up front. These errors might even be clever enough to notice that both ExtraCommas and TupleSections are in effect and gently remind the user that this combination can be confusing. Actually, this might be a nice "have your cake and eat it too" moment: let's just do all the things!<br class="">
<br class="">
Richard<br class="">
<br class="">
> On Apr 18, 2019, at 10:52 AM, Simon Peyton Jones via ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a>> wrote:<br class="">
> <br class="">
> | "tuples included" means "incompatible with tuple sections" means "they are<br class="">
> | mutually exclusive to a module."<br class="">
> <br class="">
> You mean, some kind of new error message that says "these two extension are mutually incompatible". I can't say I love this. Let's just leave out tuples from ExtraCommas.<br class="">
> <br class="">
> (Actually I could imagine [a,,b,] meaning \xy. [a,x,b,y], one day. Maybe we omit list literals too? Or would that break the key use-cases?<br class="">
> <br class="">
> Simon<br class="">
> <br class="">
> | -----Original Message-----<br class="">
> | From: Christopher Allen <<a href="mailto:cma@bitemyapp.com" target="_blank" class="">cma@bitemyapp.com</a>><br class="">
> | Sent: 18 April 2019 10:08<br class="">
> | To: Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>><br class="">
> | Cc: Eric Seidel <<a href="mailto:eric@seidel.io" target="_blank" class="">eric@seidel.io</a>>; <a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
> | Subject: Re: [ghc-steering-committee] Extra Commas<br class="">
> | <br class="">
> | My understanding of previous discussions was that:<br class="">
> | <br class="">
> | <br class="">
> | On Thu, Apr 18, 2019 at 2:17 AM Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" class="">simonpj@microsoft.com</a>><br class="">
> | wrote:<br class="">
> | ><br class="">
> | > But it's actually *incompatible* with TupleSections, so how shoule<br class="">
> | > (True,)<br class="">
> | > be interpreted if both are on?<br class="">
> | ><br class="">
> | > S<br class="">
> | ><br class="">
> | > | -----Original Message-----<br class="">
> | > | From: ghc-steering-committee<br class="">
> | > | <<a href="mailto:ghc-steering-committee-bounces@haskell.org" target="_blank" class="">ghc-steering-committee-bounces@haskell.org</a>><br class="">
> | > | On Behalf Of Christopher Allen<br class="">
> | > | Sent: 18 April 2019 04:19<br class="">
> | > | To: Eric Seidel <<a href="mailto:eric@seidel.io" target="_blank" class="">eric@seidel.io</a>><br class="">
> | > | Cc: <a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
> | > | Subject: Re: [ghc-steering-committee] Extra Commas<br class="">
> | > |<br class="">
> | > | I spoke with Matt, he's fine either way with or without tuples.<br class="">
> | > |<br class="">
> | > | I'd prefer "with tuples" for consistency. I use tuples sometimes,<br class="">
> | > | but don't care about sectioning.<br class="">
> | > |<br class="">
> | > | On Wed, Apr 17, 2019 at 8:15 PM Eric Seidel <<a href="mailto:eric@seidel.io" target="_blank" class="">eric@seidel.io</a>> wrote:<br class="">
> | > | ><br class="">
> | > | > I favor accepting the proposal, with or without tuples. I've been<br class="">
> | > | writing a bit of Rust recently, and agree with Chris about the<br class="">
> | > | ergonomics of trailing commas.<br class="">
> | > | ><br class="">
> | > | > On Wed, Apr 17, 2019, at 18:31, Joachim Breitner wrote:<br class="">
> | > | > > Hi,<br class="">
> | > | > ><br class="">
> | > | > > Am Mittwoch, den 17.04.2019, 13:38 -0500 schrieb Christopher<br class="">
> | Allen:<br class="">
> | > | > > > I gave my recommendation for ExtraCommas, acceptance of the<br class="">
> | > | > > > original proposal as written. I talk with the proposer almost<br class="">
> | > | > > > every day so I know where he stands. He still thinks it's<br class="">
> | > | worth > > > doing and would like to see it accepted. I think<br class="">
> | > | ExtraCommas > > > merits acceptance. If we can't achieve consensus<br class="">
> | > | on it then it > > > should be rejected so it gets cleared off the<br class="">
> | > | slate. I'm not > > > inclined to argue a syntactic extension like<br class="">
> | > | this, but I will say<br class="">
> | > | this:<br class="">
> | > | > > ><br class="">
> | > | > > > The proposal captures a nice design element that we've seen<br class="">
> | > | work > > > very well ergonomically in Rust. We're never going to<br class="">
> | > | make the > > > same decisions with the same tradeoffs as a totally<br class="">
> | > | different > > > language but any time there is a relatively isolated<br class="">
> | "good idea"<br class="">
> | > | > > > like this, I'd like to see us try to take advantage of that<br class="">
> | > | and > > > see if it works for us.<br class="">
> | > | > ><br class="">
> | > | > > thanks for picking this up.<br class="">
> | > | > ><br class="">
> | > | > > The most contentious point, besides whether its worth the<br class="">
> | > | bother at > > all, was the interaction with TupleSections. Which<br class="">
> | > | gives us three > > options, I think:<br class="">
> | > | > > * reject<br class="">
> | > | > > * accept, covering tuples (and making it conflict with > ><br class="">
> | > | TupleSections) > > * accept, not covering tuples.<br class="">
> | > | > ><br class="">
> | > | > > No decision is absolutely wrong, none is obviously right.<br class="">
> | > | > ><br class="">
> | > | > > Maybe we should simply do a vote, to get it decided? Simons (as<br class="">
> | > | > > Chairs), what do you think?<br class="">
> | > | > ><br class="">
> | > | > > Cheers,<br class="">
> | > | > > Joachim<br class="">
> | > | > ><br class="">
> | > | > > --<br class="">
> | > | > > Joachim Breitner<br class="">
> | > | > > <a href="mailto:mail@joachim-breitner.de" target="_blank" class="">mail@joachim-breitner.de</a><br class="">
> | > | > ><br class="">
> | > | <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww</a><br class="">
> | > | .<a href="http://joachim-breitner.de/" rel="noreferrer" target="_blank" class="">joachim-breitner.de</a>%2F&data=02%7C01%7Csimonpj%<a href="http://40microsoft.com/" rel="noreferrer" target="_blank" class="">40microsoft.com</a>%7<br class="">
> | > | C670f986836834427a29408d6c3dd5cd0%7C72f988bf86f141af91ab2d7cd011db47<br class="">
> | > | %7C1%7C0%7C636911752855987147&sdata=gCdvqR5gm0K54rJMnfcnIiOyyv4u<br class="">
> | > | 9fb%2BRkQMqGibDlM%3D&reserved=0<br class="">
> | > | > ><br class="">
> | > | > ><br class="">
> | > | > > _______________________________________________<br class="">
> | > | > > ghc-steering-committee mailing list > ><br class="">
> | > | <a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
> | > | > ><br class="">
> | > | <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fma" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fma</a><br class="">
> | > | <a href="http://il.haskell.org/" rel="noreferrer" target="_blank" class="">il.haskell.org</a>%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-commi&a<br class="">
> | > | mp;data=02%7C01%7Csimonpj%<a href="http://40microsoft.com/" rel="noreferrer" target="_blank" class="">40microsoft.com</a>%7C670f986836834427a29408d6<br class="">
> | > | c3dd5cd0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63691175285598<br class="">
> | > | 7147&sdata=NZqChpNEoHihvoow29uxmmDyPuLeVgn4iNwkcdMDno8%3D&re<br class="">
> | > | served=0<br class="">
> | > | > > ttee<br class="">
> | > | > ><br class="">
> | > | > > Attachments:<br class="">
> | > | > > * signature.asc<br class="">
> | > | > _______________________________________________<br class="">
> | > | > ghc-steering-committee mailing list ><br class="">
> | > | <a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
> | > | ><br class="">
> | > | <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fma" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fma</a><br class="">
> | > | <a href="http://il.haskell.org/" rel="noreferrer" target="_blank" class="">il.haskell.org</a>%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-committ<br class="">
> | > | &data=02%7C01%7Csimonpj%<a href="http://40microsoft.com/" rel="noreferrer" target="_blank" class="">40microsoft.com</a>%7C670f986836834427a29408<br class="">
> | > | d6c3dd5cd0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636911752855<br class="">
> | > | 987147&sdata=1PZCPlMWYOlGrlN7MFkvn7rmpdMUqv%2BShDLpFyO4Y%2FI%3D&<br class="">
> | > | amp;reserved=0<br class="">
> | > | > ee<br class="">
> | > |<br class="">
> | > |<br class="">
> | > |<br class="">
> | > | --<br class="">
> | > | Chris Allen<br class="">
> | > | Currently working on<br class="">
> | > | <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhas" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhas</a><br class="">
> | > | <a href="http://kellbook.com/" rel="noreferrer" target="_blank" class="">kellbook.com</a>&data=02%7C01%7Csimonpj%<a href="http://40microsoft.com/" rel="noreferrer" target="_blank" class="">40microsoft.com</a>%7C670f986836<br class="">
> | > | 834427a29408d6c3dd5cd0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C<br class="">
> | > | 636911752855987147&sdata=u6TzKujVuJnrWL%2BnPr0YlcE7w8xHnENsWZUDK<br class="">
> | > | 8IyjBI%3D&reserved=0<br class="">
> | > | _______________________________________________<br class="">
> | > | ghc-steering-committee mailing list<br class="">
> | > | <a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
> | > |<br class="">
> | > | <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fma" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fma</a><br class="">
> | > | <a href="http://il.haskell.org/" rel="noreferrer" target="_blank" class="">il.haskell.org</a>%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-committ<br class="">
> | > | ee&data=02%7C01%7Csimonpj%<a href="http://40microsoft.com/" rel="noreferrer" target="_blank" class="">40microsoft.com</a>%7C670f986836834427a294<br class="">
> | > | 08d6c3dd5cd0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6369117528<br class="">
> | > | 55987147&sdata=ESnHSYRuMMUvenMjIzpapcKWVfzbAqLJ9%2BcSNjoWklk%3D&<br class="">
> | > | amp;reserved=0<br class="">
> | <br class="">
> | <br class="">
> | <br class="">
> | --<br class="">
> | Chris Allen<br class="">
> | Currently working on<br class="">
> | <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhaskellbo" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhaskellbo</a><br class="">
> | <a href="http://ok.com/" rel="noreferrer" target="_blank" class="">ok.com</a>&data=02%7C01%7Csimonpj%<a href="http://40microsoft.com/" rel="noreferrer" target="_blank" class="">40microsoft.com</a>%7C670f986836834427a29408<br class="">
> | d6c3dd5cd0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636911752855987147<br class="">
> | &sdata=u6TzKujVuJnrWL%2BnPr0YlcE7w8xHnENsWZUDK8IyjBI%3D&reserved=0<br class="">
> _______________________________________________<br class="">
> ghc-steering-committee mailing list<br class="">
> <a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
> <a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br class="">
<br class="">
_______________________________________________<br class="">
ghc-steering-committee mailing list<br class="">
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br class="">
</blockquote></div>
_______________________________________________<br class="">ghc-steering-committee mailing list<br class=""><a href="mailto:ghc-steering-committee@haskell.org" class="">ghc-steering-committee@haskell.org</a><br class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee<br class=""></div></blockquote></div><br class=""></div></body></html>