<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="">I have one disagreement with what Simon says below:<div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class="WordSection1" style="page: WordSection1;"><ol start="1" type="1" class="" style="margin-bottom: 0cm; margin-top: 0cm;"><li class="MsoListParagraph" style="margin: 6pt 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-US" class="">However, the loss of type-changing updates is a real concern, so the committee want to express doubt about the OverloadedRecordUpdate part, even though we previously accepted it. Sorry about that. It’s a change in our stance.</span></li></ol></div></blockquote><div class=""><br class=""></div><div class="">I don't see this result from this thread. Instead, I see that one member of the committee has expressed doubt about this. This is a valid concern and one that we could continue to discuss, but I don't feel comfortable stating that the "committee" expresses doubt. If there are others on the committee who share similar doubts and want to un-accept part of the original proposal, please speak up -- I may have misread the room. Otherwise, I don't think this point accurately represents the discussion we have had here.</div><div class=""><br class=""></div><div class="">I'm happy with the other points.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Richard</div><div><br class=""><blockquote type="cite" class=""><div class="">On Mar 5, 2021, at 12:19 PM, Simon Peyton Jones via ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" class="">ghc-steering-committee@haskell.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><p class="MsoNormal" style="margin: 0cm 0cm 12pt 36pt; font-size: 11pt; font-family: Calibri, sans-serif;">So, why the hurry to add this to GHC now, when we know from experience how painful it is to remove things, once they are out in the wild?<o:p class=""></o:p></p><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class="">I thought had agreed the following:<o:p class=""></o:p></span></div><ol start="1" type="1" style="margin-bottom: 0cm; margin-top: 0cm;" class=""><li class="MsoListParagraph" style="margin: 6pt 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-US" class="">We accept the proposal.<o:p class=""></o:p></span></li><li class="MsoListParagraph" style="margin: 6pt 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 11pt;" class="">It’s fine for the authors to continue with the implementation. If OverloadedRecordUpdate in GHC’s code base, it should be documented in the user manual. They should signal in that documentation that this part of the design may well change in the future, so it would be inadvisable to start using it for long-lived libraries.</span></li><li class="MsoListParagraph" style="margin: 6pt 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-US" class="">Arnaud wanted clarification in Alternatives, section 7.7. To avoid confusion about what “clarify” means,<span class="Apple-converted-space"> </span><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1GbWAC8URaVRmj6Lkj1b10okNsVuUfO6U0qq-lrSpses%2Fedit%3Fusp%3Dsharing&data=04%7C01%7Csimonpj%40microsoft.com%7C2f00be7cdc504b92fcc708d8df229562%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637504686911684988%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=bWQMb8whuhbQamUYbMReDvrCEjhJtX1oG2tQZcCwE6k%3D&reserved=0" style="color: blue; text-decoration: underline;" class="">Arnaud and I drafted this</a>. They have already adopted this wording.<o:p class=""></o:p></span></li><li class="MsoListParagraph" style="margin: 6pt 0cm; font-size: 11pt; font-family: Calibri, sans-serif;"><span lang="EN-US" class="">We’ll look forward to a new record-update proposal soon, which Adam is working on.<o:p class=""></o:p></span></li></ol><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class="">I think this is fine. We discussed the original proposal for months, and this modification draws back on that accepted proposal, and so should be even easier to agree.<o:p class=""></o:p></span></div><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class="">Please yell now (today) if you really think this is a mistake. I have checked with the authors and this is acceptable to them. I think if we say no, we want to back to the drawing board for the entire design they’ll just give up, and with some justification.<o:p class=""></o:p></span></div><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class="">OK?<o:p class=""></o:p></span></div><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class="">Simon<o:p class=""></o:p></span></div><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span class=""><o:p class=""> </o:p></span></div><div style="border-style: none none none solid; border-left-width: 1.5pt; border-left-color: blue; padding: 0cm 0cm 0cm 4pt;" class=""><div class=""><div style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(225, 225, 225); padding: 3pt 0cm 0cm;" class=""><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class=""><span lang="EN-US" class="">From:</span></b><span lang="EN-US" class=""><span class="Apple-converted-space"> </span>ghc-steering-committee <<a href="mailto:ghc-steering-committee-bounces@haskell.org" class="">ghc-steering-committee-bounces@haskell.org</a>><span class="Apple-converted-space"> </span><b class="">On Behalf Of<span class="Apple-converted-space"> </span></b>Iavor Diatchki<br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>05 March 2021 16:03<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span>Spiwack, Arnaud <<a href="mailto:arnaud.spiwack@tweag.io" class="">arnaud.spiwack@tweag.io</a>>; ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" class="">ghc-steering-committee@haskell.org</a>><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>Re: [ghc-steering-committee] Modification to record dot syntax propsal<o:p class=""></o:p></span></div></div></div><div style="margin: 0cm; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div class=""><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">I find that this committee is having less and less technical discussion on concrete issues, and there is a lot of talk of process, rules, and definitions, that I do not find useful.<o:p class=""></o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">It is extremely difficult to anticipate all aspects of a design without implementing it and using it for a while, so I completely disagree that we should not revisit accepted proposals.<o:p class=""></o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">While "experimental" extensions are totally fine in my book, I really do think we should avoid intentionally introducing things that we know now are likely to change. The overloaded records update is such an extension: it changes a useful, standardized, and in my experience, not uncommonly used feature, into a less general version (in one dimension, anyway). Furthermore, we are aware that there is already work by Adam to address this, so the extension will likely change (or perhaps we are going to have yet another record related extension).<o:p class=""></o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 12pt; font-size: 11pt; font-family: Calibri, sans-serif;">So, why the hurry to add this to GHC now, when we know from experience how painful it is to remove things, once they are out in the wild?<o:p class=""></o:p></p><div class=""><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">On Fri, Mar 5, 2021, 02:50 Spiwack, Arnaud <<a href="mailto:arnaud.spiwack@tweag.io" style="color: blue; text-decoration: underline;" class="">arnaud.spiwack@tweag.io</a>> wrote:<o:p class=""></o:p></p></div><blockquote style="border-style: none none none solid; border-left-width: 1pt; border-left-color: rgb(204, 204, 204); padding: 0cm 0cm 0cm 6pt; margin-left: 4.8pt; margin-right: 0cm;" class=""><div class=""><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">Iavor,<o:p class=""></o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">I concur with Simon and Eric. Accepting a proposal is a promise that the proposal will not be debated on the design front in the future. That is, when the implementation comes up it is out of scope to discuss design. That's the deal. GHC proposals are a process. The goal of this process is to foster participation of the wider community to the evolution of GHC, by reducing stress and uncertainty, and focusing productivity. This is why changing the design of an accepted proposal requires another proposal, submitted to the same level of scrutiny as the original proposal. Even, and in particular, by members of the steering committee.<o:p class=""></o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">In this particular case, the authors have agreed to the change, and this is something that we feel is important enough to press forward quickly. So in the interest of everybody's time, I suggest that we move on. But, generally, the point stands.<o:p class=""></o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">/Arnaud<o:p class=""></o:p></p></div></div><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p><div class=""><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">On Thu, Mar 4, 2021 at 8:45 PM Eric Seidel <<a href="mailto:eric@seidel.io" target="_blank" style="color: blue; text-decoration: underline;" class="">eric@seidel.io</a>> wrote:<o:p class=""></o:p></p></div><blockquote style="border-style: none none none solid; border-left-width: 1pt; border-left-color: rgb(204, 204, 204); padding: 0cm 0cm 0cm 6pt; margin-left: 4.8pt; margin-right: 0cm;" class=""><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 12pt; font-size: 11pt; font-family: Calibri, sans-serif;">I agree it’s more important to get things right than to look good, but we should aim to do both of course. As Simon mentioned earlier, this will erode the community’s confidence if it happens too often. So I’m ok with reversing our decision on this point (happily it sounds like there’s already work underway on an improved design), but I think we should reflect on why we didn’t have this discussion back when we were discussing the original proposal. <o:p class=""></o:p></p><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">Sent from my iPhone<o:p class=""></o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><br class=""><br class=""><o:p class=""></o:p></p><blockquote style="margin-top: 5pt; margin-bottom: 5pt;" class=""><p class="MsoNormal" style="margin: 0cm 0cm 12pt; font-size: 11pt; font-family: Calibri, sans-serif;">On Mar 4, 2021, at 14:04, Iavor Diatchki <<a href="mailto:iavor.diatchki@gmail.com" target="_blank" style="color: blue; text-decoration: underline;" class="">iavor.diatchki@gmail.com</a>> wrote:<o:p class=""></o:p></p></blockquote></div><blockquote style="margin-top: 5pt; margin-bottom: 5pt;" class=""><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""></o:p></p><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">Bad look or not, it seems better to me to change our mind than accept something "to save face" :) It seems hard to imagine that I am the only one here who uses type changing updates in records. How are other members of the committee reconciling this change? Are you planning to change your code to use record wild cards as Neil suggested---this seems a lot worse than the status quo? Or is the plan the plan to just fork the language and use the pragma to disambiguate?<o:p class=""></o:p></p><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p></div><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">I don't mind if the extension is in GHC's code, but I think that if we add it to the GHC manual, people will use it, and it will be a much bigger deal to change later.<o:p class=""></o:p></p></div></div><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></p><div class=""><div class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">On Thu, Mar 4, 2021 at 9:59 AM Eric Seidel <<a href="mailto:eric@seidel.io" target="_blank" style="color: blue; text-decoration: underline;" class="">eric@seidel.io</a>> wrote:<o:p class=""></o:p></p></div><blockquote style="border-style: none none none solid; border-left-width: 1pt; border-left-color: rgb(204, 204, 204); padding: 0cm 0cm 0cm 6pt; margin-left: 4.8pt; margin-right: 0cm;" class=""><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">Yes that clears up the current situation. And from the current email chain it looks like the authors are aware of the plan to send record updates back for revision? I'd just want to make sure that the updated proposal reflects that split on which parts have been accepted.<br class=""><br class="">For what it's worth, I do recall the loss of type-changing update being part of the original proposal and thought the proposal was still good on balance. The tradeoffs were definitely discussed in the giant Github thread, I don't recall if we discussed that aspect here though.. Regardless, I think it's a bad look for us to walk back a decision on account of not having read the proposal closely enough!<br class=""><br class="">On Thu, Mar 4, 2021, at 09:53, Simon Peyton Jones wrote:<br class="">> | That being said, I don't see anything in the revised proposal about<br class="">> | the stability of OverloadedRecordUpdate. Are you saying that as part<br class="">> | of this revision, we'll explicitly accept OverloadedRecordDot and send<br class="">> | OverloadedRecordUpdate back for revision?<br class="">><span class="Apple-converted-space"> </span><br class="">> We *already* accepted both, as part of accepting the earlier<span class="Apple-converted-space"> </span><br class="">> RecordDotSyntax proposal. But in this round, Iavor has pushed back<span class="Apple-converted-space"> </span><br class="">> against OverloadedRecordUpdate. No one else has expressed a view on<span class="Apple-converted-space"> </span><br class="">> this point.<br class="">><span class="Apple-converted-space"> </span><br class="">> But rather than debate it at length I proposed to explicitly un-accept<span class="Apple-converted-space"> </span><br class="">> the OverloadedRecordUpdate part of the proposal. It'll return as part<span class="Apple-converted-space"> </span><br class="">> of a new record-update proposal that Adam is working on.<br class="">><span class="Apple-converted-space"> </span><br class="">> In the meantime OverloadedRecordUpdate will be in GHC's codebase, and<span class="Apple-converted-space"> </span><br class="">> (assuming that's what the majority wants) documented in the user<span class="Apple-converted-space"> </span><br class="">> manual, with a prominent "may change" caveat.<br class="">><span class="Apple-converted-space"> </span><br class="">> Does that make it clear?<br class="">><span class="Apple-converted-space"> </span><br class="">> Simon<span class="Apple-converted-space"> </span><br class="">><span class="Apple-converted-space"> </span><br class="">> | -----Original Message-----<br class="">> | From: ghc-steering-committee <ghc-steering-committee-<br class="">> | <span class="Apple-converted-space"> </span><a href="mailto:bounces@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">bounces@haskell.org</a>> On Behalf Of Eric Seidel<br class="">> | Sent: 04 March 2021 14:38<br class="">> | To:<span class="Apple-converted-space"> </span><a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a><br class="">> | Subject: Re: [ghc-steering-committee] Modification to record dot<br class="">> | syntax propsal<br class="">> | <span class="Apple-converted-space"> </span><br class="">> | I agree with Richard and Joachim that it should be documented in the<br class="">> | user guide. It's much better to document features with the expected<br class="">> | level of support than to let users stumble upon them and make their<br class="">> | own assumptions about stability.<br class="">> | <span class="Apple-converted-space"> </span><br class="">> | That being said, I don't see anything in the revised proposal about<br class="">> | the stability of OverloadedRecordUpdate. Are you saying that as part<br class="">> | of this revision, we'll explicitly accept OverloadedRecordDot and send<br class="">> | OverloadedRecordUpdate back for revision?<br class="">> | <span class="Apple-converted-space"> </span><br class="">> | On Thu, Mar 4, 2021, at 04:46, Simon Peyton Jones via ghc-steering-<br class="">> | committee wrote:<br class="">> | ><br class="">> | > Friends<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > We've agree to accept my suggestion below.<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > But there is one point at issue: should OverloadedRecordUpdate be<br class="">> | > documented in the user manual, albeit identified as a not-yet-<br class="">> | accepted<br class="">> | > feature?<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > * Richard positively wants it in the manual<br class="">> | > * Iavor positively doesn't want it there.<br class="">> | ><br class="">> | ><br class="">> | > I don't mind either way.<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > What do others think? It's not a big deal, but we owe the authors a<br class="">> | > decision. Answer by the end of the week please, and I'll make a<br class="">> | > shepherd decision based on the opinions I get.<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > Simon<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > *From:* Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" style="color: blue; text-decoration: underline;" class="">simonpj@microsoft.com</a>><br class="">> | > *Sent:* 02 March 2021 12:45<br class="">> | > *To:* ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a>><br class="">> | > *Cc:* Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" style="color: blue; text-decoration: underline;" class="">simonpj@microsoft.com</a>><br class="">> | > *Subject:* RE: [ghc-steering-committee] Modification to record dot<br class="">> | > syntax propsal<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > Friends<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > Having consulted the authors, I propose that we do this:<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > * Proceed with OverloadedRecordDot for 9.2, exactly as in the<br class="">> | > original proposal except for the extension name.<br class="">> | > * Record update will remain exactly as now, in 9.2; that is,<br class="">> | drawing<br class="">> | > back from the original proposal.<br class="">> | > * There may be some *code* in 9.2 that allows overloaded record<br class="">> | > update, protected by OverloadedRecordUpdate, but not in the user<br class="">> | > manual, and not treated as an accepted proposal. I don't think we<br class="">> | > should ask the authors to remove it, and it will allow<br class="">> | experimentation.<br class="">> | > * Adam is leading on a revised record-update proposal. This will<br class="">> | cover<br class="">> | > * the tradeoffs between type-changing and non-type-changing<br class="">> | update<br class="">> | > * what the current record-update syntax stands for, and/or any<br class="">> | new<br class="">> | > syntax<br class="">> | ><br class="">> | ><br class="">> | > Is that acceptable to everyone?<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > Simon<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > *From:* ghc-steering-committee<br class="">> | > <<a href="mailto:ghc-steering-committee-bounces@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee-bounces@haskell.org</a>> *On Behalf Of *Simon<br class="">> | > Peyton Jones via ghc-steering-committee<br class="">> | > *Sent:* 01 March 2021 17:51<br class="">> | > *To:* Iavor Diatchki <<a href="mailto:iavor.diatchki@gmail.com" target="_blank" style="color: blue; text-decoration: underline;" class="">iavor.diatchki@gmail.com</a>>; Spiwack, Arnaud<br class="">> | > <<a href="mailto:arnaud.spiwack@tweag.io" target="_blank" style="color: blue; text-decoration: underline;" class="">arnaud.spiwack@tweag.io</a>><br class="">> | > *Cc:* ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a>><br class="">> | > *Subject:* Re: [ghc-steering-committee] Modification to record dot<br class="">> | > syntax propsal<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > I don't buy the argument of "this is already accepted", as I don't<br class="">> | > think many of us had noticed that part of the proposal (I certainly<br class="">> | > didn't), and I think we should be flexible enough to revisit<br class="">> | previous<br class="">> | > decisions when we notice problems with them.<br class="">> | ><br class="">> | > I agree in principle that we can revisit decisions. But we have to<br class="">> | be<br class="">> | > aware that it is potentially very discouraging for proposal authors<br class="">> | to<br class="">> | ><br class="">> | > * propose something,<br class="">> | > * have it *extensively* debated (including this very point),<br class="">> | > * have it accepted,<br class="">> | > * implement it,<br class="">> | > and then be told that the committee has changed its mind. That's<br class="">> | > pretty bad from their point of view.<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > Still, Adam is working on a new SetField proposal, so perhaps that's<br class="">> | a<br class="">> | > figleaf. I'll consult them.<br class="">> | ><br class="">> | ><br class="">> | > Simon<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > *From:* Iavor Diatchki <<a href="mailto:iavor.diatchki@gmail.com" target="_blank" style="color: blue; text-decoration: underline;" class="">iavor.diatchki@gmail.com</a>><br class="">> | > *Sent:* 01 March 2021 17:23<br class="">> | > *To:* Spiwack, Arnaud <<a href="mailto:arnaud.spiwack@tweag.io" target="_blank" style="color: blue; text-decoration: underline;" class="">arnaud.spiwack@tweag.io</a>><br class="">> | > *Cc:* Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank" style="color: blue; text-decoration: underline;" class="">simonpj@microsoft.com</a>>;<br class="">> | > ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a>><br class="">> | > *Subject:* Re: [ghc-steering-committee] Modification to record dot<br class="">> | > syntax propsal<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > Hello,<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > I think there is a strong motivation to *at least* split the<br class="">> | > extensions: with the current design, enabling the special `.`<br class="">> | notation<br class="">> | > also *disables* type changing record update, which has nothing to do<br class="">> | > with the `.` notation.<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > My preference would be to:<br class="">> | ><br class="">> | > 1. Split the original proposal into two parts: one about `.`<br class="">> | > notation, the other about record update (as suggested by this<br class="">> | proposal)<br class="">> | ><br class="">> | > 2. Treat the `.` notation part as accepted<br class="">> | ><br class="">> | > 3. Require changes on the record update part, so that you don't<br class="">> | have<br class="">> | > to choose between it and type changing record updates, which are<br class="">> | quite<br class="">> | > useful, and I don't think we should aim for a Haskell without them.<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > I don't buy the argument of "this is already accepted", as I don't<br class="">> | > think many of us had noticed that part of the proposal (I certainly<br class="">> | > didn't), and I think we should be flexible enough to revisit<br class="">> | previous<br class="">> | > decisions when we notice problems with them.<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > -Iavor<br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | ><br class="">> | > On Mon, Mar 1, 2021 at 1:40 AM Spiwack, Arnaud<br class="">> | <<a href="mailto:arnaud.spiwack@tweag.io" target="_blank" style="color: blue; text-decoration: underline;" class="">arnaud.spiwack@tweag.io</a>> wrote:<br class="">> | ><br class="">> | > > Simon, all,<br class="">> | ><br class="">> | > ><br class="">> | ><br class="">> | > > After reading more of the PR thread (in particular the fews posts<br class="">> | after Simon's recommendation), I have to admit: I am thoroughly<br class="">> | confused. I'm not sure that two people in that thread have the same<br class="">> | motivation, end goal, or design in mind.<br class="">> | ><br class="">> | > ><br class="">> | ><br class="">> | > > The motivations provided by the modified *Alternatives* section is<br class="">> | not much more helpful (at the risk of caricaturing a little, it<br class="">> | basically reads: "we made two extensions rather than one because we<br class="">> | can"). Though it makes it clear that the end goal is to fold a bunch<br class="">> | of record-related extensions into one glorious record extension (well,<br class="">> | probably not fold them, but make a meta-extension that implies all the<br class="">> | extensions that we've decided we like).<br class="">> | ><br class="">> | > ><br class="">> | ><br class="">> | > > My starting point is that:<br class="">> | ><br class="">> | > > - Additional extensions have a maintenance cost<br class="">> | ><br class="">> | > > - Additional extensions impose a cognitive burden on their use<br class="">> | ><br class="">> | > > - I expect that a new extension will break my code in the next few<br class="">> | releases.<br class="">> | ><br class="">> | > ><br class="">> | ><br class="">> | > > Based on this, I don't care how this extension or the glorious<br class="">> | record extension are named; but if we want to have two extensions we<br class="">> | should have a serious reason. Right now, the one reason that I see<br class="">> | (and Iavor raised), is that the update part of `RecordDotSyntax` is<br class="">> | not backward compatible. Is it a strong enough reason? I don't know.<br class="">> | The only data point that I can provide is that when we discussed the<br class="">> | original proposal, I brought it up several times, and it didn't seem<br class="">> | very important at the time (the conversation focused on other points<br class="">> | of the proposal).<br class="">> | ><br class="">> | > ><br class="">> | ><br class="">> | > > So, I'm still reluctant. I feel that, at the very least, the<br class="">> | motivations are not well-enough articulated in the proposal (I'll make<br class="">> | a comment to this effect on Github when I'm done composing this<br class="">> | email).<br class="">> | ><br class="">> | > ><br class="">> | ><br class="">> | > > I appreciate that I'm in the minority here. Yet, I'm still<br class="">> | unconvinced.<br class="">> | ><br class="">> | > ><br class="">> | ><br class="">> | > > Best,<br class="">> | ><br class="">> | > > Arnaud<br class="">> | ><br class="">> | > ><br class="">> | ><br class="">> | > > On Sat, Feb 27, 2021 at 12:39 AM Simon Peyton Jones<br class="">> | <<a href="mailto:simonpj@microsoft.com" target="_blank" style="color: blue; text-decoration: underline;" class="">simonpj@microsoft.com</a>> wrote:<br class="">> | ><br class="">> | > >> Generally, I'm not in favour in proposals which split extensions<br class="">> | though: we already have so many extensions. Are the reasons for this<br class="">> | split strong enough? I haven't had time to dig into the details.<br class="">> | ><br class="">> | > >> Arnaud, happily, you don't have to dig very deep - just read the<br class="">> | handful of posts following my recommendation.<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >> There seem to be two motivations.<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >> 1. There really are two orthogonal extensions, one for r.x<br class="">> | notation, and one for overloaded update. Iavor likes the first but<br class="">> | not the second. Neil likes both. Having separate extensions lets us<br class="">> | experiment.<br class="">> | > >><br class="">> | ><br class="">> | > >> 1. You suggest that changing the definition of RecordDotSyntax<br class="">> | in a subsequent release, e.g. by subsequently making it imply<br class="">> | NoFieldSelectors, would be fine. But it certainly imposes pain - some<br class="">> | programs would stop compiling. The approach offered by this proposal<br class="">> | avoids that problem.<br class="">> | > >><br class="">> | ><br class="">> | > >> Yes, there are lots of extensions surrounding records:<br class="">> | NoFieldSelectors, DuplicateRecordFields, NamedFieldPuns,<br class="">> | DisambiguateRecordFields, RecordWildCards. It may not be pretty to<br class="">> | divide things up so fine, but it's not new.<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >> If there are alternative suggestions, let's hear them.<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >> Simon<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >> *From:* ghc-steering-committee <ghc-steering-committee-<br class="">> | <span class="Apple-converted-space"> </span><a href="mailto:bounces@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">bounces@haskell.org</a>> *On Behalf Of *Spiwack, Arnaud<br class="">> | > >> *Sent:* 26 February 2021 22:33<br class="">> | > >> *To:* Iavor Diatchki <<a href="mailto:iavor.diatchki@gmail.com" target="_blank" style="color: blue; text-decoration: underline;" class="">iavor.diatchki@gmail.com</a>><br class="">> | > >> *Cc:* ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a>><br class="">> | > >> *Subject:* Re: [ghc-steering-committee] Modification to record<br class="">> | dot syntax propsal<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >>> I do think that reusing the record update syntax for the<br class="">> | overloaded monomorphic update is a mistake---it is not something I had<br class="">> | noticed during our original discussion.<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >> This is the one reason I can see for cutting this extension in<br class="">> | smaller pieces. But, then again, -XOverloadedRecordUpdate would be a<br class="">> | fork-like extension.<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >> Generally, I'm not in favour in proposals which split extensions<br class="">> | though: we already have so many extensions. Are the reasons for this<br class="">> | split strong enough? I haven't had time to dig into the details.<br class="">> | ><br class="">> | > >><br class="">> | ><br class="">> | > >> I'm not sure that not having the design of the proposal quite<br class="">> | finalised is a good reason, extensions mutate in their first<br class="">> | iterations, I don't think that it's a problem.<br class="">> | ><br class="">> | > _______________________________________________<br class="">> | > ghc-steering-committee mailing list<br class="">> | ><span class="Apple-converted-space"> </span><a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a><br class="">> | ><br class="">> | <span class="Apple-converted-space"> </span><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail" target="_blank" style="color: blue; text-decoration: underline;" class="">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail</a><br class="">> | .<a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhaskell.org%2F&data=04%7C01%7Csimonpj%40microsoft.com%7Ce0e7e14d1ba74d216e9e08d8dff055dc%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637505571335600745%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=s8rfn2SfP1OFefRGDsd%2FmqTI%2FLu3z7qMkFNhZBlZDbc%3D&reserved=0" target="_blank" style="color: blue; text-decoration: underline;" class="">haskell.org</a>%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-<br class="">> | committee&data=04%7C01%7Csimonpj%<a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2F40microsoft.com%2F&data=04%7C01%7Csimonpj%40microsoft.com%7Ce0e7e14d1ba74d216e9e08d8dff055dc%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637505571335610744%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=0iayJnlnpm5mchQpMmPgRY5bw2t%2FSrHkYmfnXamfgjQ%3D&reserved=0" target="_blank" style="color: blue; text-decoration: underline;" class="">40microsoft.com</a>%7C8abc00434aa94b7<br class="">> | fa98e08d8df1b5d9f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6375046<br class="">> | 55938142566%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMz<br class="">> | IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9DGVl6oJc0%2BIQekuXf<br class="">> | zwqviiaT%2FaHZIlIk3R5aMZssA%3D&reserved=0<br class="">> | ><br class="">> | _______________________________________________<br class="">> | ghc-steering-committee mailing list<br class="">> | <span class="Apple-converted-space"> </span><a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a><br class="">> | <span class="Apple-converted-space"> </span><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail" target="_blank" style="color: blue; text-decoration: underline;" class="">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail</a><br class="">> | .<a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhaskell.org%2F&data=04%7C01%7Csimonpj%40microsoft.com%7Ce0e7e14d1ba74d216e9e08d8dff055dc%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637505571335620741%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=Ba9awmAYQ%2BPEtLYOlw2Mu8irB%2FGwmvv2OM30ofAMCmA%3D&reserved=0" target="_blank" style="color: blue; text-decoration: underline;" class="">haskell.org</a>%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-<br class="">> | committee&data=04%7C01%7Csimonpj%<a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2F40microsoft.com%2F&data=04%7C01%7Csimonpj%40microsoft.com%7Ce0e7e14d1ba74d216e9e08d8dff055dc%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637505571335620741%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=%2BikTVk4HLF4Gey%2BgOoWnbhGKbYhUADxIfZNAzEBtFp8%3D&reserved=0" target="_blank" style="color: blue; text-decoration: underline;" class="">40microsoft.com</a>%7C8abc00434aa94b7<br class="">> | fa98e08d8df1b5d9f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6375046<br class="">> | 55938152562%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMz<br class="">> | IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=QZlV0RrRttaiDdrQNiRB<br class="">> | vUhS6il1DydPX5cyl%2BdILbI%3D&reserved=0<br class="">><br class="">_______________________________________________<br class="">ghc-steering-committee mailing list<br class=""><a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a><br class=""><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-committee&data=04%7C01%7Csimonpj%40microsoft.com%7Ce0e7e14d1ba74d216e9e08d8dff055dc%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637505571335630737%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=6A2TJygA2WZ29GqX4kBSJmZi5kX2O2Tmawv4SvpNZuk%3D&reserved=0" target="_blank" style="color: blue; text-decoration: underline;" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><o:p class=""></o:p></p></blockquote></div></div></blockquote></div><p class="MsoNormal" style="margin: 0cm 0cm 6pt; font-size: 11pt; font-family: Calibri, sans-serif;">_______________________________________________<br class="">ghc-steering-committee mailing list<br class=""><a href="mailto:ghc-steering-committee@haskell.org" target="_blank" style="color: blue; text-decoration: underline;" class="">ghc-steering-committee@haskell.org</a><br class=""><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-committee&data=04%7C01%7Csimonpj%40microsoft.com%7Ce0e7e14d1ba74d216e9e08d8dff055dc%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637505571335630737%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=6A2TJygA2WZ29GqX4kBSJmZi5kX2O2Tmawv4SvpNZuk%3D&reserved=0" target="_blank" style="color: blue; text-decoration: underline;" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><o:p class=""></o:p></p></blockquote></div></blockquote></div></div></div></div></div><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">ghc-steering-committee mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""><a href="mailto:ghc-steering-committee@haskell.org" class="">ghc-steering-committee@haskell.org</a></span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""><a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a></span></div></blockquote></div><br class=""></div></body></html>