<div dir="ltr"><div dir="ltr"><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 2 May 2020 at 10:39, Joachim Breitner <<a href="mailto:mail@joachim-breitner.de">mail@joachim-breitner.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">Dear Committee,<br>
<br>
it seems discussion has ebbed down. Are there any new arguments that<br>
can be brought forward? Did anyone have a change of mind which would<br>
bring us closer to (or farther away from) consensus? Or should we vote?<br>
<br>
Simon Marlow, Chris, Cale, Tom:<br>
You have not stated an opinion. Do you have one?<br></blockquote><div><br></div><div>Ideally the extension would use record overloading, but I understand why that can't work right now (thanks Richard for enlightening me). Given that, I'm not keen on introducing the concept of "fully settled types" - it feels like a kludge, and introducing a special type system concept for this one particular extension doesn't seem like the right tradeoff to me. Perhaps if it was available for general record selection too... but then we have to worry about the interaction with the existing overloaded record selection mechanism.<br></div><div><br></div><div>On the other hand, the modules-based approach is simple to describe, conservative, and supports the important uses. It's not ideal, but on balance it seems like the right approach for now.</div><div><br></div><div>Cheers</div><div>Simon<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Cheers,<br>
Joachim<br>
<br>
Am Mittwoch, den 22.04.2020, 12:26 +0200 schrieb Joachim Breitner:<br>
> Dear Committe,<br>
> <br>
> trying to summarize the discussion here.<br>
> <br>
> The main decision seems to be: Record based or module based.<br>
> <br>
>    Record based is preferred by:<br>
>    Arnaud (one of the authors), SPJ<br>
> <br>
>    Module based is preferred by:<br>
>    Richard (after changing his mind), Eric, Iavor, Vitaly, Alejandro,<br>
>    me<br>
> <br>
> This is not a vote, merely a summary of sentimenss. But it seems that<br>
> maybe the onus to make stronger arguments for the record-based approach<br>
> is on Simon and Arnaud?<br>
> <br>
> <br>
> Related to the  module based variant, there was some discussion about<br>
> whether the<br>
>  * desugaring should go to a “qualified name”, that is then resolved <br>
>    like any manually written name<br>
>    (i.e. could conceptually be done in the parser)<br>
>  * or if it should go directly a suitable “original name” of a suitable<br>
>    function, even if not explicitly imported<br>
>    (i.e. could conceptually be done in the renamer, but not the parser)<br>
> <br>
> I initially advocated for the latter, arguing with a “you shall not<br>
> have to import stuff you do not write explicitly” rule.<br>
> But Simon’s recent argument that   <br>
> <br>
>     import qualified Monad as M<br>
> <br>
> (i.e. _with_ qualification, but _without_ an import list) will give the<br>
> developer a good user experience, and if they try to do things like <br>
> <br>
>     import Monad as M (runMonad)<br>
>     … M.do …<br>
> <br>
> then, well, they shouldn’t. So I am happy to advocate for the module<br>
> based approach with the “must be in scope” rule. But maybe we should<br>
> keep the focus more on the fundamental question above.<br>
> <br>
> <br>
> <br>
> We could keep in mind that eventually, people will ask for M.if; M.[<br>
> and other “qualified syntax”. But it seems that that will work equally<br>
> well with either choice here.<br>
> <br>
> Cheers,<br>
> Joachim<br>
> <br>
> <br>
-- <br>
Joachim Breitner<br>
  <a href="mailto:mail@joachim-breitner.de" target="_blank">mail@joachim-breitner.de</a><br>
  <a href="http://www.joachim-breitner.de/" rel="noreferrer" target="_blank">http://www.joachim-breitner.de/</a><br>
<br>
<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></div>