<div dir="ltr">I agree somewhat. In the last two years, I've gotten more into the habit about being explicit with import lists for commonly-used modules like Control.Monad, Control.Applicative, and Data.Monoid. This is especially the case when I'm writing library code (that I expect that other people may read one day), although I'm more lax in application code. Still, it's nice to be able to fire up GHCi and do something like this without having to worry about conflicting identifiers:<div><br></div><div> >>> :m Data.Monoid Data.Semigroup</div><div><br></div><div>But yes, in theory, people should avoid this. In practice, they often don't.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 12, 2018 at 3:12 AM, Henning Thielemann <span dir="ltr"><<a href="mailto:lemming@henning-thielemann.de" target="_blank">lemming@henning-thielemann.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
On Wed, 11 Apr 2018, Andrew Martin wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
(As an aside, and the confusion I’m talking about here isn’t entirely hypothetical. I got tripped up by this when I first started using the semigroups library. I had to train myself to stop importing Data.Monoid unqualified, because it kept stealing these identifiers)<br>
</blockquote>
<br></span>
Unqualified imports are not the problem - unqualified imports without import list are the problem. People should not do that.</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">-Andrew Thaddeus Martin</div>
</div>