<div dir="ltr"><div>Hi,</div><div>I am OK with B or C, with a slight preference with B. I am OK too with moving this proposal fast so it can be reflected on GHC 9.0.</div><div><br></div><div>Regards,</div><div>Alejandro<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El lun., 14 sept. 2020 a las 0:12, Richard Eisenberg (<<a href="mailto:rae@richarde.dev">rae@richarde.dev</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi committee,<br>
<br>
Mathieu Boespflug has proposed a new syntax for linear arrows: <a href="https://github.com/ghc-proposals/ghc-proposals/pull/356" rel="noreferrer" target="_blank">https://github.com/ghc-proposals/ghc-proposals/pull/356</a><br>
<br>
Currently (from the original linear types proposal), we have #-> to denote a linear function, and # m -> to denote an arbitrary function whose argument has multiplicity m. This proposal suggests three changes:<br>
<br>
1. Drop #-> entirely.<br>
2. Use ^ instead of # in the second form, but require that it be a *prefix* usage of ^ (that is, the character after the ^ must not be whitespace).<br>
3. Introduce a new lexeme ^1 that is used to denote linear functions.<br>
Alternative: use % in place of ^; % is observed to be more visually apparent in some fonts than ^.<br>
<br>
In time, the hope is that rule (3) will no longer be needed, if we gain overloaded numbers at the type level (when 1 :: Multiplicity will type-check without a special rule).<br>
<br>
Motivations for this change come from the experience within Tweag of using linear types. The change away from # also is to avoid a conflict with overloaded labels, once those are allowed in types.<br>
<br>
The hope is that we can make a decision about this in time for release with GHC 9.0. This proposal is already implemented: <a href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4020" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4020</a><br>
<br>
In conflict with our usual protocol, I will not make a recommendation on this proposal, as I am conflicted with the proposer. However, I do hope that we can come to a conclusion on this quickly, to avoid making a backward-incompatible change after a release.<br>
<br>
We have four options:<br>
A. Keep the syntax as it is.<br>
B. Choose to go with ^<br>
C. Choose to go with %<br>
D. Choose to go with some other symbol. I don't think there is any particular preference for any one symbol over another.<br>
<br>
Richard<br>
_______________________________________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</blockquote></div>