<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="">I think Arnaud's is an effective argument. It has not changed my opinion of this proposal (I'm still against), but it's moved the needle a bit for me. What it does suggest is a feature in HLint (if it doesn't already exist) that encourages this behavior. Putting this in HLint allows individuals and organizations to experiment with enforcing this style, perhaps building up further experience for retrying this in the future.<div class=""><br class=""></div><div class="">After writing the above, I talked to Arnaud, and he pointed out a deadly flaw in this plan: even if qualified is the default, it might sometimes be nice to import unqualified. In the proposal, this is done via the unqualified keyword. But without this proposal, there would be no way to signal to HLint that an import is meant to be unqualified. So perhaps a much more modest proposal allowing (but not requiring) users to write `unqualified` in import statements would be worthwhile. This keyword would always be redundant today, but it might feasibly be a way forward here.</div><div class=""><br class=""></div><div class="">Full disclosure: my immediate instinct would be to be against the "unqualified" proposal, but it wouldn't be a fork of the language (unlike the current proposal). Perhaps others could convince me otherwise.</div><div class=""><br class=""></div><div class="">Richard</div><div class=""><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 17, 2019, at 7:52 AM, Spiwack, Arnaud <<a href="mailto:arnaud.spiwack@tweag.io" class="">arnaud.spiwack@tweag.io</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">Dear all,</div><div class=""><br class=""></div><div class="">As one of the author of this proposal. I am, unsurprisingly, against rejecting it. Though it seems I'm rather in a minority here, let me add one last argument to try and sway the general opinion. Being understood that being an author, this argument cannot, in any way be considered as “a vote” or any such thing.<br class=""></div><div class=""><br class=""></div><div class="">Human psychology is powerful. As it happens, we have a very strong tendency to choose whatever course of thought or action requires the least mental effort. Defaults require very little mental efforts, so we naturally will gravitate towards default. This is why, for instance, almost every Swedish worker is part of a union, while almost every French worker isn't: in Sweden, unionising is opt-out, whereas in France, it's opt-in. That's also why putting apples in front of sweet deserts in a school restaurant will result in more children eating fruits rather than cakes.</div><div class=""><br class=""></div><div class="">Back to our case: the overwhelming majority of Haskell packages are designed to be used unqualified (and also do almost all of their imports unqualified). Now, either unqualified import are really that much better, or the default has an enormous influence. As I previously mentioned, in Ocaml, a fairly similar language, qualified is the default, and almost every libraries are designed for qualified imports, and import their modules qualified. So I'd wager it's the default.</div><div class=""><br class=""></div><div class="">As a software architect, I do actually spend a bunch of my code reviews saying: you should import qualified. It would be a much more effective and powerful message to simply set the default imports as being qualified in my projects. For me, the change in this proposal would really be a very significant change.<br class=""></div><div class=""><br class=""></div><div class="">Now, the committee may decide that this is still not worth the confusion implied by having two incompatible syntactic conventions out there. That's entirely fair! I just don't want anybody to walk out of this conversation with the feeling that this proposal is an inconsequential stylistic change.<br class=""></div><div class=""><br class=""></div><div class="">/Arnaud<br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 16, 2019 at 2:04 PM Sandy Maguire <<a href="mailto:sandy@sandymaguire.me" class="">sandy@sandymaguire.me</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 dir="ltr" class="">I'm happy with your reasoning, Simon, and am also in favor of rejection.</div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 16, 2019 at 9:23 AM Simon Marlow <<a href="mailto:marlowsd@gmail.com" target="_blank" class="">marlowsd@gmail.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 dir="ltr" class=""><div class="">Dear steering committee - <br class=""></div><div class=""><br class=""></div><div class="">The discussion following my earlier suggestion to reject the proposal has petered out. Taking into account the discussion, it still seems to me that we should reject the proposal, so I've posted on the thread to this effect: <a href="https://github.com/ghc-proposals/ghc-proposals/pull/220#issuecomment-531666589" target="_blank" class="">https://github.com/ghc-proposals/ghc-proposals/pull/220#issuecomment-531666589</a></div><div class=""><br class=""></div><div class="">Any further comments before we close it?</div><div class=""><br class=""></div><div class="">Thanks<br class=""></div><div class="">Simon<br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 5 Jul 2019 at 08:19, Simon Marlow <<a href="mailto:marlowsd@gmail.com" target="_blank" class="">marlowsd@gmail.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 dir="ltr" class=""><div class="">Dear steering committee - <br class=""></div><div class=""><br class=""></div><div class="">I am inclined to reject this proposal, so as per the new committee process I posted the rationale on the github thread: <a href="https://github.com/ghc-proposals/ghc-proposals/pull/220#issuecomment-508414602" target="_blank" class="">https://github.com/ghc-proposals/ghc-proposals/pull/220#issuecomment-508414602</a></div><div class=""><br class=""></div><div class="">You may want to consider the proposal and offer opinions while we wait for the authors' rebuttal. It's a very simple proposal.</div><div class=""><br class=""></div><div class="">Cheers</div><div class="">Simon</div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 3 Jul 2019 at 08:55, Joachim Breitner <<a href="mailto:mail@joachim-breitner.de" target="_blank" class="">mail@joachim-breitner.de</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">Dear Committee,<br class="">
<br class="">
this is your secretary speaking:<br class="">
<br class="">
QualifiedImports<br class="">
has been proposed by Arnaud Spiwack and Guillaume Bouchard<br class="">
<a href="https://github.com/ghc-proposals/ghc-proposals/pull/220" rel="noreferrer" target="_blank" class="">https://github.com/ghc-proposals/ghc-proposals/pull/220</a><br class="">
<a href="https://github.com/tweag/ghc-proposals/blob/qualified-import/proposals/0000-default-qualified-import.rst" rel="noreferrer" target="_blank" class="">https://github.com/tweag/ghc-proposals/blob/qualified-import/proposals/0000-default-qualified-import.rst</a><br class="">
<br class="">
I propose Simon M as the shepherd.<br class="">
<br class="">
Please reach consensus as described in<br class="">
<a href="https://github.com/ghc-proposals/ghc-proposals#committee-process" rel="noreferrer" target="_blank" class="">https://github.com/ghc-proposals/ghc-proposals#committee-process</a><br class="">
In particular, talk to the authors before, if you think this should be<br class="">
rejected, and kick off the discussion on Github, following the steps <br class="">
described under “Now the shepherd proposes to accept or reject the<br class="">
proposal” in the above link.<br class="">
<br class="">
Thanks,<br class="">
Joachim<br class="">
-- <br class="">
Joachim Breitner<br class="">
  <a href="mailto:mail@joachim-breitner.de" target="_blank" class="">mail@joachim-breitner.de</a><br class="">
  <a href="http://www.joachim-breitner.de/" rel="noreferrer" target="_blank" class="">http://www.joachim-breitner.de/</a><br class="">
<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>
</blockquote></div>
_______________________________________________<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><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class="gmail-m_-7431573988205520906gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class="">I'm currently travelling the world, sleeping on people's couches and doing full-time collaboration on Haskell projects. If this seems interesting to you, please consider signing up as a host! <a href="https://isovector.github.io/erdos/" target="_blank" class="">https://isovector.github.io/erdos/</a><br class=""></div></div></div></div></div>
_______________________________________________<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>
_______________________________________________<br class="">ghc-steering-committee mailing list<br class=""><a href="mailto:ghc-steering-committee@haskell.org" class="">ghc-steering-committee@haskell.org</a><br class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee<br class=""></div></blockquote></div><br class=""></div></div></body></html>