<html><body>
<div dir="ltr">
<br><br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On 11 Dec 2020 at 21:35:20, Richard Eisenberg <<a href="mailto:rae@richarde.dev">rae@richarde.dev</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 style="word-wrap:break-word;line-break:after-white-space" class="">Sorry -- I've lost track here a bit. What's the issue with the grammar?</div></blockquote><div class="gmail_quote"><br></div>In this comment <a href="https://github.com/ghc-proposals/ghc-proposals/pull/370#issuecomment-741785189">https://github.com/ghc-proposals/ghc-proposals/pull/370#issuecomment-741785189</a>:</div><div class="gmail_quote"><br></div></div><blockquote 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" class="gmail_quote"><div dir="ltr"><div class="gmail_quote"><font face=".AppleSystemUIFont"><span style="font-style:normal"><span style="box-sizing:border-box;color:rgb(36,41,46)">Syntax</span><span style="color:rgb(36,41,46)">: the form </span><code style="box-sizing:border-box;padding:0.2em 0.4em;margin:0px;background-color:var(--color-markdown-code-bg);border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px;color:rgb(36,41,46)">btype [ {modifier} -> type ]</code><span style="color:rgb(36,41,46)"> seems to allow one or zero modifiers but not two. Or do I misunderstand the braces? Spell it out please</span></span></font></div></div></blockquote><div dir="ltr"><div class="gmail_quote"><br></div><div class="gmail_quote">Regards,</div><div class="gmail_quote">Alejandro</div><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space" class=""><div class=""><br class=""></div><div class="">I'm quite happy to label this experimental. The key aspect of the proposal is just to outline a way forward with adding syntax.</div><div class=""><br class=""></div><div class="">Richard</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Dec 10, 2020, at 4:29 AM, Alejandro Serrano Mena <<a href="mailto:trupill@gmail.com" class="">trupill@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">
<div dir="ltr" class="">Should we mark them as “accepted” with the following text?</div><div dir="ltr" class=""><br class=""></div><blockquote 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" class="gmail_quote"><div dir="ltr" class="">The Committee accepts this proposal as experimental. This means that the Committee expects changes to this feature in the future, maybe as the result of other accepted proposals.</div></blockquote><div dir="ltr" class=""><br class=""></div><div dir="ltr" class="">If you agree, then we can accept this proposal once a little remaining issue with the grammar has been clarified.</div><div dir="ltr" class=""><br class=""></div><div dir="ltr" class="">Regards,</div><div dir="ltr" class="">Alejandro</div><div dir="ltr" class=""><br class=""><br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On 10 Dec 2020 at 09:59:02, Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" class="">simonpj@microsoft.com</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">
<div lang="EN-GB" link="blue" vlink="purple" style="word-wrap:break-word" class="">
<div class="WordSection1"><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:36.0pt">
That was the point of my previous email: accept, and accept-as-experimental are actually one and the same.</p><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
Objectively, yes. But I think it helps users to advertise a feature as experimental. It’s a signal to users that this feature is, well, experimental. It is more likely to change.</p><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
It’s only an indication not a clear distinction. But I find it helpful.</p><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
For me, it also reflects how I evaluate the proposal. For a change to a well-established feature, we have a lot of experience in how people use that feature.
</p><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
For experimental features we don’t. Example: defaulting for matchability for unsaturated type families. We don’t have unsaturated type families right now, so we don’t have any code that uses them, and hence zero in-the-wild experience about matchability defaulting.
We shouldn’t spend ages arguing the toss – just trust Csongor’s judgement and give it a try, but advertising that details may change.</p><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
Simon</p><div class=""><span style="mso-fareast-language:EN-US" class=""> </span><br class="webkit-block-placeholder"></div>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt" class="">
<div class="">
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm" class=""><p class="MsoNormal"><b class=""><span lang="EN-US" class="">From:</span></b><span lang="EN-US" class=""> Spiwack, Arnaud <<a href="mailto:arnaud.spiwack@tweag.io" class="">arnaud.spiwack@tweag.io</a>>
<br class="">
<b class="">Sent:</b> 10 December 2020 08:06<br class="">
<b class="">To:</b> Alejandro Serrano Mena <<a href="mailto:trupill@gmail.com" class="">trupill@gmail.com</a>><br class="">
<b class="">Cc:</b> Richard Eisenberg <<a href="mailto:rae@richarde.dev" class="">rae@richarde.dev</a>>; <a href="mailto:ghc-steering-committee@haskell.org" class="">ghc-steering-committee@haskell.org</a>; Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" class="">simonpj@microsoft.com</a>><br class="">
<b class="">Subject:</b> Re: [ghc-steering-committee] #370: Syntax for Modifiers, Recommendation: Acceptance</span></p>
</div>
</div><div class=""> <br class="webkit-block-placeholder"></div>
<div class="">
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
That was the point of my previous email: accept, and accept-as-experimental are actually one and the same.</p>
</div>
<div class=""><div style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm" class="">
<br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
What Simon is driving at, I think, is: depending on what the proposal is about, we want to apply more or less strict standard of acceptance (if a proposal is about fixing something in an existing feature, then we better be rather sure that it is indeed an improvement;
but if it's about adding something new in an untrodden territory, then we can't really be sure, and it's worth experimenting with).</p>
</div>
</div><div style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm" class="">
<br class="webkit-block-placeholder"></div>
<div class="">
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
On Wed, Dec 9, 2020 at 9:17 PM Alejandro Serrano Mena <<a href="mailto:trupill@gmail.com" class="">trupill@gmail.com</a>> wrote:</p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm" class="">
<div class="">
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
Dear all,</p>
</div>
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
As the shepherd of this proposal, I’m quite confused about what the outcome should be. The ghc-proposals README states that:</p>
</div>
<div class=""><div style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm" class="">
<br class="webkit-block-placeholder"></div>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm" class="">
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
<span style="font-family:".AppleSystemUIFont",serif;color:#24292e" class="">Acceptance of the proposal implies that the implementation will be accepted into GHC provided it is well-engineered, well-documented, and does not complicate the code-base too much.</span></p>
</div>
</blockquote>
<div class=""><div style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm" class="">
<br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
Most of the Committee seems to lean towards “this seems OK right now, but we don’t want to be locked” or “mark this as experimental”. However, there’s no such notion as “accept as experimental”. Furthermore, as it stands the proposal gives some syntax, and
then asks any new extensions to use that syntax; so it cannot be completely thought as a feature by itself.</p>
</div>
<div class=""><div style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm" class="">
<br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
Regards,</p>
</div>
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm">
Alejandro</p>
<div class="">
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
On 9 Dec 2020 at 15:59:43, Spiwack, Arnaud <<a href="mailto:arnaud.spiwack@tweag.io" target="_blank" class="">arnaud.spiwack@tweag.io</a>> wrote:</p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm" class="">
<div class="">
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
It's always possible to change. I don't think accepting a proposal means (or ought to mean) that we are locked into anything. Accepting a proposal means that we won't oppose a design-related argument to a PR that implements (part or all of) an accepted proposal.</p>
</div>
<div class=""><div style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm" class="">
<br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
I don't know how to quantify the degree of confidence that we have in the stability of a proposal. Here we are all saying: this is better than anything so far, and we rather need something like this to be a thing, but it's really a shot in the dark. And this
lack of confidence will be reflected in the manual description. But even if we are confident in the stability of a proposal, it may very well happen that it changes dramatically, even soon.</p>
</div>
</div><div style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm" class="">
<br class="webkit-block-placeholder"></div>
<div class="">
<div class=""><p class="MsoNormal" style="margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">
On Wed, Dec 9, 2020 at 2:55 PM 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:</p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm" class="">
<div class="">
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I’ve replied on GitHub. Generally in favour. But mark it as experimental… I don’t want to be locked into “we decided on this in Dec 2020 so now it’s too late”. WE can learn from
experience.</p><div style="" class=""> <br class="webkit-block-placeholder"></div><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Simon</p><div style="" class=""> <br class="webkit-block-placeholder"></div>
<div style="border:none;border-left:solid windowtext 1.5pt;padding:0cm 0cm 0cm 4.0pt;border-color:currentcolor currentcolor currentcolor blue" class="">
<div class="">
<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0cm 0cm 0cm;border-color:currentcolor currentcolor" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b class=""><span lang="EN-US" class="">From:</span></b><span lang="EN-US" class=""> ghc-steering-committee <<a href="mailto:ghc-steering-committee-bounces@haskell.org" target="_blank" class="">ghc-steering-committee-bounces@haskell.org</a>>
<b class="">On Behalf Of </b>Alejandro Serrano Mena<br class="">
<b class="">Sent:</b> 03 December 2020 20:17<br class="">
<b class="">To:</b> Richard Eisenberg <<a href="mailto:rae@richarde.dev" target="_blank" class="">rae@richarde.dev</a>><br class="">
<b class="">Cc:</b> <a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
<b class="">Subject:</b> Re: [ghc-steering-committee] #370: Syntax for Modifiers, Recommendation: Acceptance</span></p>
</div>
</div><div style="" class=""> <br class="webkit-block-placeholder"></div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Dear Committee,</p>
</div>
<div class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Richard has requested for us to consider the new version of this proposal. As opposed to the previous version, this one is only about reserving syntax for “modifiers”, which at
the beginning would be used for things like linearity or matchability of arrows.</p>
</div>
<div class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I think this is a good proposal, and one which would save us from re-considering syntax for every possible extension (and if linearity appears before the arrow and matchability
after it, where would a future dimension go?). Thus I keep recommending acceptance on this new incarnation.</p>
</div>
<div class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regards,</p>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Alejandro</p>
</div>
<div class=""><div style="margin-bottom:12pt" class=""> <br class="webkit-block-placeholder"></div>
<div class="">
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On 30 Nov 2020 at 20:52:26, Richard Eisenberg <<a href="mailto:rae@richarde.dev" target="_blank" class="">rae@richarde.dev</a>> wrote:</p>
</div>
<blockquote style="border:none;border-left:solid windowtext 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)" class="">
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">To my surprise, I found myself leaning against. So I updated and simplified the proposal to remove Modifier. This makes modifiers a bit more magical, but more likely to actually
work in practice. The type inference story previously may have been intractable.</p>
<div class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I've requested that the committee consider the updates in parallel with community feedback.</p>
</div>
<div class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,</p>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Richard</p>
<div class=""><div style="margin-bottom:12pt" class=""> <br class="webkit-block-placeholder"></div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class="">
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Nov 30, 2020, at 2:36 PM, Alejandro Serrano Mena <<a href="mailto:trupill@gmail.com" target="_blank" class="">trupill@gmail.com</a>> wrote:</p>
</div><div style="" class=""> <br class="webkit-block-placeholder"></div>
<div class="">
<div class="">
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">After some discussion in the GitHub thread, changes are going to arrive to the proposal. I think the best is to send the proposal back to the “Needs revision” state.</p>
</div>
<div class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regards,</p>
</div>
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Alejandro</p>
</div>
<div class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
<div class="">
<div class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On 29 Nov 2020 at 23:12:44, Eric Seidel <<a href="mailto:eric@seidel.io" target="_blank" class="">eric@seidel.io</a>> wrote:</p>
</div>
<blockquote style="border:none;border-left:solid windowtext 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)" class="">
<div class=""><p class="MsoNormal" style="margin-bottom:12.0pt">I left a few comments and questions on the PR itself, but I'm leaning towards rejecting the proposal in its current form as well. This doesn't (yet) feel like a generic mechanism, in
particular because the only modifier that has been specified would be deeply wired into GHC itself.<br class="">
<br class="">
On Fri, Nov 27, 2020, at 04:46, Joachim Breitner wrote:</p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi,</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Am Donnerstag, den 26.11.2020, 14:58 -0500 schrieb Alejandro Serrano</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Mena:</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> Dear all,</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> This proposal suggests adding syntax for a general notion of</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> modifiers, like the ones we’ve been talking about lately affecting</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> linearity or matchability of arrows. For example, if linear types and</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> unsaturated families are accepted as they stand, we would have `Int</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> #1 -> @U Bool` (or something like that), whereas with this proposal</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> we would have the more uniform `Int %1 %Unmatchable -> Bool`.</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">>
</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> Since the amount of modifiers is likely to increase in the future, I</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> think it’s a great idea to agree and reserve such syntax, instead of</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> coming up with different ways on each proposal. I thus recommend</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> acceptance of this proposal.</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">>
</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> The proposal itself:</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> (1) introduces syntax for modifiers in types and defines how to</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> type/kind check them,</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> (2) reserved such syntax for other uses in declarations and terms.</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">>
</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> I think the proposal still has its merits only with (1), even though</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">> I lean towards accepting both parts of it.</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I like the idea of reserving syntax here, but parts of the proposal</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">smell a bit like premature generalization to me. Are we confident that</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">all annotations we eventually would like to use with this feature can</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">be expressed as types of a kind that is an instance of Modifier? Or</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">should we reserve the ability to have annotations that don't fit that</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">model?</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Would we ever have annotation that may affect phases earlier than than</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">typechecking? What if we want to use (%type e) and (%data e) to help</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">with the SingleNamepace issues? Look like useful annotations to me, but</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I am not sure if they fit the framework proposed here.</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The fact that we special-case %1 supports that.</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The proposal explicitly has to state “No modifier polymorphism!”. But</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">isn't that indication that using the type system to model the various</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">modifiers might be the wrong tool?</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I wonder if there is a way where the %(…) on it’s own only reserve</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">syntax, and the various uses of that syntax can be disambiguated</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">_statically_ based on the content of ….
</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Not great syntax, because not concise, enough, but morally I’d feel</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">more at ease with</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> Int %(multiplicity Many) -> Int</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> Int %(multiplicity 1) -> Int</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> Int %(multiplicity m) -> Int</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">where multiplicity is a modifier keyword, to express the existing</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">features (including implicit generalization of m). Then we can extend</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">this to</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> Int %oneShot -> Int</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">and</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> Int %(matchability M) -> Int</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">and maybe even</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> foo (%type [a]) -- where foo :: forall a -> ()</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">which is a modifier that
</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">So at the moment, I am inclined to reject this proposal, until I am</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">convinced that we are not painting ourselves into a “all modifiers are</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">types of special kinds and that’s all the syntax and behaviour we ever</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">need” corner.</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Minor detail: If we can annotate infix use of the (->) “type operator”,</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">should we also be able to annotate other infix operators, i.e.</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> constr ::= (btype | ! atype) {modifier} conop (btype | ! atype)
</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> infixexp ::= lexp {modifier} qop infixexp</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Cheers,</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Joachim</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">--
</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Joachim Breitner</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <a href="mailto:mail@joachim-breitner.de" target="_blank" class="">mail@joachim-breitner.de</a></p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.joachim-breitner.de%2F&data=04%7C01%7Csimonpj%40microsoft.com%7C97291bd458234e28f0aa08d89ce27f4f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431843904133795%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=EOafNT2JtRWPODqAKfG3TNH3xqPEe3%2B5ThuYLbjYPiY%3D&reserved=0" target="_blank" class="">http://www.joachim-breitner.de/</a></p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">_______________________________________________</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">ghc-steering-committee mailing list</p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a></p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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%7C97291bd458234e28f0aa08d89ce27f4f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431843904143751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=CSx3i0ZoLHVnh6rfNzv1qcJwMCXnRxM6iD%2FxYBRTJP8%3D&reserved=0" target="_blank" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a></p>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt" class=""><div style="" class=""> <br class="webkit-block-placeholder"></div>
</blockquote><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">_______________________________________________<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://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%7C97291bd458234e28f0aa08d89ce27f4f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431843904143751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=CSx3i0ZoLHVnh6rfNzv1qcJwMCXnRxM6iD%2FxYBRTJP8%3D&reserved=0" target="_blank" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a></p>
</div>
</blockquote>
</div>
</div>
</div><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">_______________________________________________<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://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%7C97291bd458234e28f0aa08d89ce27f4f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431843904153698%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=EEoElFpNjneP9rKR808eGaYKwaV66tLHiN0Tbra0GkA%3D&reserved=0" target="_blank" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a></p>
</div>
</blockquote>
</div><div style="" class=""> <br class="webkit-block-placeholder"></div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div><p class="MsoNormal">_______________________________________________<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://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%7C97291bd458234e28f0aa08d89ce27f4f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637431843904153698%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=EEoElFpNjneP9rKR808eGaYKwaV66tLHiN0Tbra0GkA%3D&reserved=0" target="_blank" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a></p>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div></blockquote></div><br class=""></div></div>
</blockquote>
</div>
</div>
</body></html>