<div dir="ltr">The quote syntax has me vaguely wondering if there would be some interaction with OverloadedLabels, but I haven't looked closely enough to see if it would be an actual problem.</div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Thu, Dec 26, 2024 at 9:40 AM Artem Pelenitsyn <<a href="mailto:a.pelenitsyn@gmail.com">a.pelenitsyn@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px"><br></span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">>> </span></font> <span style="background-color:rgba(129,139,152,0.12);color:rgb(31,35,40);font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:11.9px;white-space:break-spaces">orgNotification."type"</span></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">><br></span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">> doesn't look too ugly to my eye.</span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px"><br></span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">That's what nix has when you need fields that don't lex as identifiers. So, at least some people (including me) would be familiar with that. However, it does require a certain leap in the mental model at first.</span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px"><br></span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">--</span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px">Best, Artem<br></span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px"><br></span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px"><br></span></font></div><div><font color="#1f2328" face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"><span style="font-size:14px"><br></span></font></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 26, 2024 at 9:24 AM Jons Mostovojs <<a href="mailto:jm@memorici.de" target="_blank">jm@memorici.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Dear Ivan,</div><div dir="auto"><br></div><div dir="auto">I normally don't post, but I got quite scared after reading your commentary of the proposal. </div><div dir="auto"><br></div><div dir="auto">However, upon closer inspection, it became evident that it doesn't allow overriding keywords as your post suggested.<br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div><table style="border-spacing:0px;border-collapse:separate;width:356px;table-layout:fixed;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji";font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(31,35,40)"><tbody style="font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji""><tr style="font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji""><td style="padding:0px 54px 0px 22px;line-height:20px;vertical-align:top;outline:dotted 1px;text-indent:0px;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji""><span style="display:table-cell;font-size:12px;white-space:pre-wrap;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji"">(While the changes to *<span style="font-style:italic;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji"">fbind</span>* allow more record constructions</span></td></tr><tr style="font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji""><td style="padding:0px 54px 0px 22px;line-height:20px;vertical-align:top;outline:dotted 1px;text-indent:0px;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji""><button type="button" style="font-style:inherit;font-weight:inherit;font-size:inherit;line-height:21px;font-family:inherit;margin:0px;text-transform:none;display:inline-block;padding:0px;text-decoration:none;white-space:nowrap;border:0px;float:left;width:22px;height:22px;text-align:center;text-indent:0px"></button><span style="display:table-cell;font-size:12px;white-space:pre-wrap;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji"">to parse, a construction such as ``C { type = e }}`` or ``C { foo.bar = e }``</span></td></tr><tr style="font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji""><td style="padding:0px 54px 0px 22px;line-height:20px;vertical-align:top;outline:dotted 1px;text-indent:0px;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji""><button type="button" style="font-style:inherit;font-weight:inherit;font-size:inherit;line-height:21px;font-family:inherit;margin:0px;text-transform:none;display:inline-block;padding:0px;text-decoration:none;white-space:nowrap;border:0px;float:left;width:22px;height:22px;text-align:center;text-indent:0px"></button><span style="display:table-cell;font-size:12px;white-space:pre-wrap;font-family:-apple-system,blinkmacsystemfont,"segoe ui","noto sans",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji"">will continue to be rejected during name resolution.)</span></td></tr></tbody></table></div><br></div><div dir="auto">Finally – ad absurdum – ["let", "it", "be"] is a valid Haskell term, despite starting with a string which is a string literal coinciding with a keyword. </div><div dir="auto"><br clear="all"><div dir="auto"><div dir="ltr" class="gmail_signature"><div dir="ltr">—<br>Kindest regards,<br>¬Σ<br></div></div></div></div><div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 25 Dec 2024 at 16:01, Ivan Perez <<a href="mailto:ivanperezdominguez@gmail.com" target="_blank">ivanperezdominguez@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I don't know the history of why you might be banned if you are, so I feel comfortable being the proxy.</div><div><br></div><div>Regardless, I've posted my own opinion on github (<a href="https://github.com/ghc-proposals/ghc-proposals/pull/668" target="_blank">https://github.com/ghc-proposals/ghc-proposals/pull/668</a>) just now and <b>I urge others to do the same</b>.</div><div><br></div><div>Allowing keywords as anything but keywords is a very bad idea. It should not be allowed.</div></div><div dir="ltr"><div><br></div><div>Ivan<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 24 Dec 2024 at 19:50, Anthony Clayden <<a href="mailto:anthony.d.clayden@gmail.com" target="_blank">anthony.d.clayden@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>And Merry Christmas to all.</div><div><br></div>I counsel against allowing reserved ids to be anything other than reserved ids. "...
<span style="font-family:Verdana,Tahoma,sans-serif;font-size:13px;color:rgb(10,10,10)"> is fraught with peril, unduly complicates the parser, and harms readability.</span> " says a language implementer I asked.<div><br></div><div>But wanting to use field names dictated outside this language's control is a realistic requirement, for which there are several general approaches. The ghc proposal as it stands seems ad-hoc and very specific to one user organisation. Furthermore, this just ain't true:</div><div><br></div><div>> ...
<span style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;color:rgb(31,35,40)">SQL schemas. anyone working with those is stuck deciding between special-casing its naming, and consistently naming </span><em style="box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;color:rgb(31,35,40)">everything</em><span style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;color:rgb(31,35,40)"> weirdly, ...</span></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><br></span></font></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">SQL consistently supports things like embedded spaces, fields starting upper-case [**], embedded dots or other graphics -- by no means just names that clash with reserved ids.</span></font></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><br></span></font></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">How does it do that? And this answer seems particularly relevant when these ids are going to feed into `HasField` constraints as a type-level String: put the id between quotes.</span></font></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><br></span></font></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">> </span></font> <span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:11.9px;white-space:break-spaces;background-color:rgba(129,139,152,0.12);color:rgb(31,35,40)">orgNotification."type"</span></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><br></span></font></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">doesn't look too ugly to my eye. And to spj's repeated point: I could envisage allowing fields in `data` decls and record syntax to be quoted. (Again you couldn't use punning nor field-name as function.)</span></font></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji""><br></span></font></div><div><font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:rgb(31,35,40)"><span style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">The approach is sufficiently general it could be extended to `#"Label naming"`</span></font>.<div><br></div><div>[**] I'm particularly keen on field names starting upper case, because they're injective/part of the structure, like data constructors.</div><div><br></div><div>AntC<br><div><br></div><div>(Why am I posting to the cafe, not github? I seem to be blocked from posting on any topic, either on github or gitlab -- even for pages where I'm the sole author. I'd be grateful if somebody could post the above to the PR.)</div></div></div></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div><div><br clear="all"></div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>brandon s allbery kf8nh</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a></div></div></div></div></div>