<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=""><div class="">Quoting from the document:</div><div class=""><br class=""></div>> The proposal is entirely about syntax; and specifically about<br class=""> introducing the form `r.x` for record field selection. No changes<br class=""> to the type system, or any other aspect of the language, are<br class=""> proposed. The original proposal was more elaborate, providing ways<br class=""> to update fields as well as set them, but was simplified to focus on<br class=""> the essentials.<div class=""><br class=""></div><div class="">Is this fact enshrined in the proposal document? I view that as ground truth. And it describes, e.g., that (e { field = val }) now means (setField ...), which means that polymorphic record update is incompatible with -XRecordDotSyntax. What features of the proposal document are actually a part of the proposal?</div><div class=""><br class=""></div><div class="">Otherwise, I am happy with the tone and content of the post.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Richard</div><div class=""><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Mar 31, 2020, at 11:40 AM, Simon Marlow <<a href="mailto:marlowsd@gmail.com" class="">marlowsd@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" 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=""><div dir="ltr" class="">On Tue, 31 Mar 2020 at 11:08, Simon Peyton Jones via ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" class="">ghc-steering-committee@haskell.org</a>> wrote:<br class=""></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">Thanks Joachim.<span class="Apple-converted-space"> </span><br class=""><br class="">Everyone: I have extended our choices document with a draft post to the Github thread.<br class=""><a href="https://docs.google.com/document/d/1MgovHRUUNjbuM4nM8qEe308MfbAYRh2Q8PxFHl7iY74/edit?usp=sharing" rel="noreferrer" target="_blank" class="">https://docs.google.com/document/d/1MgovHRUUNjbuM4nM8qEe308MfbAYRh2Q8PxFHl7iY74/edit?usp=sharing</a><br class=""><br class="">Can you review it, for both tone and content? You have edit permission, so by all means improve the wording. Look for omissions. I want to bring the discussion to a close, not re-ignite further debate, but be respectful of those who disagree.<br class=""></blockquote><div class=""><br class=""></div><div class="">Before we accept the proposal I think we should have a precise description of the changes to the syntax. For example, we don't address the question of whether a field name can be an operator or not. We explicitly left these questions until later; wouldn't now be the right time to address them?</div><div class=""><br class=""></div><div class="">Also worth bringing up at this point, since we landed on C2a: Note 5 says<span class="Apple-converted-space"> </span><br class=""></div><div class=""><br class=""></div><div style="margin-left: 40px;" class=""><span id="gmail-docs-internal-guid-589ae4f8-7fff-3cec-bd66-f25989f1be63" style="font-size: 11pt; font-family: Arial; background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" class="">One mechanism for handling this is </span><a href="https://github.com/shayne-fletcher-da/ghc-proposals/blob/record-dot-syntax/proposals/0000-record-dot-syntax.md#2322-parsing-of-field-selections" style="text-decoration: none;" class=""><span style="font-size: 11pt; font-family: Arial; color: rgb(17, 85, 204); background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;" class="">given in the proposal</span></a><span style="font-size: 11pt; font-family: Arial; background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" class="">. It involves no changes to the lexer, but instead an adjacency test one production of the parser.</span></div><div class=""><br class=""></div><div class="">I'm not sure about this as a language design. (1) it's an ad-hoc side-condition that can't be expressed in the lexical or context-free grammar (however there's precedent for this kind of thing in the form of the layout rule of course), and (2) it's quite a costly feature in terms of implementation effort to add to the language, because your AST needs complete and accurate source-span information. We can do it in GHC, and haskell-src-exts can do it nowadays, but earlier versions of haskell-src-exts before complete SrcSpanInfo was added wouldn't have been able to implement this rule. Arguably we're only accepting this as a GHC extension and not a Haskell extension in general, but as we know GHC is the testbed for future language extensions, so it's a good time to consider these issues.<br class=""></div><div class=""><br class=""></div><div class="">The alternative of course is to go with some variant of<span class="Apple-converted-space"> </span><br class=""></div><div class=""><br class=""><ol id="gmail-docs-internal-guid-dc8280f6-7fff-fac5-cb3b-60a7ca215b98" style="margin-top: 0px; margin-bottom: 0px;" class=""><ul style="margin-top: 0px; margin-bottom: 0px;" class=""><li dir="ltr" style="list-style-type: circle; font-size: 11pt; font-family: Arial; background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 11pt; font-family: Arial; background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;" class="">Use the “tight infix” mechanism from </span><a href="https://github.com/ghc-proposals/ghc-proposals/pull/229" style="text-decoration: none;" class=""><span style="font-size: 11pt; font-family: Arial; color: rgb(17, 85, 204); background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;" class="">this (accepted) GHC proposal</span></a></div></li></ul></ol></div><div class=""><br class=""></div><div class="">which is also an ad-hoc side-condition sadly, but could be implemented in the lexer. Nevertheless, all this needs to be nailed down before the proposal can be accepted, IMO.</div><div class=""><br class=""></div><div class="">Cheers</div><div class="">Simon</div><div class=""><br class=""></div><div class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><br class="">Could you do so this week, by end Friday? I propose to leave the votes recorded there, but when posting I'll move the post from the document (deleting it from there) to GitHub.<br class=""><br class="">I'm cc'ing Neil and Shayne, the authors. Neil, Shayne: I think (and desperately hope!) you'll be content with this outcome. Can you review my draft post too?<br class=""><br class="">Simon<br class=""><br class="">| -----Original Message-----<br class="">| From: ghc-steering-committee <<a href="mailto:ghc-steering-committee-bounces@haskell.org" target="_blank" class="">ghc-steering-committee-bounces@haskell.org</a>><br class="">| On Behalf Of Joachim Breitner<br class="">| Sent: 30 March 2020 17:48<br class="">| To: ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a>><br class="">| Subject: Re: [ghc-steering-committee] Record dot syntax: vote results<br class="">| <span class="Apple-converted-space"> </span><br class="">| Dear Committe,<br class="">| <span class="Apple-converted-space"> </span><br class="">| thanks all for voting. The ranking of votes is now<br class="">| <span class="Apple-converted-space"> </span><br class="">| C2a > C2b > C4 > C1 > C7 > C6 > C3 > C5<br class="">| <span class="Apple-converted-space"> </span><br class="">| In particular C2a beats every other options by 7:4 or more, and is<br class="">| therefore the result of this poll.<br class="">| <span class="Apple-converted-space"> </span><br class="">| You can see more statistics at<br class="">| <span class="Apple-converted-space"> </span><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.cond" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.cond</a><br class="">| <span class="Apple-converted-space"> </span><a href="http://orcet.vote/" rel="noreferrer" target="_blank" class="">orcet.vote</a>%2FVote%2FAB23CE70AC%2F&data=02%7C01%7Csimonpj%40microsoft.c<br class="">| om%7Ce27e9c8f455b436e2bee08d7d4ca3538%7C72f988bf86f141af91ab2d7cd011db47%7<br class="">| C1%7C0%7C637211837260982595&sdata=LLWCxVjXxyLqcJUZ9iMgB%2B5QYGMuHFzJga<br class="">| u9agTakiQ%3D&reserved=0<br class="">| <span class="Apple-converted-space"> </span><br class="">| So, does this conclude this saga?<br class="">| <span class="Apple-converted-space"> </span><br class="">| Cheers,<br class="">| Joachim<br class="">| <span class="Apple-converted-space"> </span><br class="">| --<br class="">| Joachim Breitner<br class="">| <span class="Apple-converted-space"> </span><a href="mailto:mail@joachim-breitner.de" target="_blank" class="">mail@joachim-breitner.de</a><br class="">| <span class="Apple-converted-space"> </span><br class="">| <span class="Apple-converted-space"> </span><a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.joach" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.joach</a><br class="">| im-<br class="">| <span class="Apple-converted-space"> </span><a href="http://breitner.de/" rel="noreferrer" target="_blank" class="">breitner.de</a>%2F&data=02%7C01%7Csimonpj%<a href="http://40microsoft.com/" rel="noreferrer" target="_blank" class="">40microsoft.com</a>%7Ce27e9c8f455b43<br class="">| 6e2bee08d7d4ca3538%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6372118372<br class="">| 60982595&sdata=GE%2BBYN7rA7zWgwuKlArv4PR%2Fm3IlmZ7PqWbGpgXUyms%3D&<br class="">| reserved=0<br class="">| <span class="Apple-converted-space"> </span><br class="">| <span class="Apple-converted-space"> </span><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" 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.has" rel="noreferrer" target="_blank" class="">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.has</a><br class="">| <span class="Apple-converted-space"> </span><a href="http://kell.org/" rel="noreferrer" target="_blank" class="">kell.org</a>%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-<br class="">| committee&data=02%7C01%7Csimonpj%<a href="http://40microsoft.com/" rel="noreferrer" target="_blank" class="">40microsoft.com</a>%7Ce27e9c8f455b436e2be<br class="">| e08d7d4ca3538%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637211837260982<br class="">| 595&sdata=nEx7qjYqnST1TA74HRkgK4O1zW3tvqpM4Dx4ECCig7I%3D&reserved=<br class="">| 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=""></blockquote></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=""><a href="mailto:ghc-steering-committee@haskell.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">ghc-steering-committee@haskell.org</a><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=""><a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a></div></blockquote></div><br class=""></div></div></body></html>