<div dir="ltr"><div><div><div>Hi, <br><br>the only problem with the "import Prelude" trick is that it does not help when you explicitly list what you import. For example, in one of my files I had:<br><br>import Control.Applicative ((<$>))<br><br></div>which will still result in a warning. Simply change it to <br><br>import Control.Applicative<br></div><div>import Prelude<br><br></div>However, sometimes there are conflicting names due to reexports. For example, forM is both in Data.Traversable and Control.Monad. In such a case, use "hiding" for one of them. <br><br>Also change <br><br></div><div>import <module> (<f>)<br><br></div><div>to <br><br></div><div>import <module> hiding (<everything except f>)<br></div><div><br></div><div>if you want to avoid CPP at all cost.<br><br></div><div>I too went through a few cycles 7.8.4 <-> 7.10.1 trying to make the code warning free on both (I don't use Travis but having minghc on Windows or using HVR's PPA on Ubuntu helps a lot).<br></div><div><br></div><div>Michal<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Apr 12, 2015 at 3:45 PM, Brendan Hay <span dir="ltr"><<a href="mailto:brendan.g.hay@gmail.com" target="_blank">brendan.g.hay@gmail.com</a>></span> wrote:<br><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">Thanks for the tips!</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On 12 April 2015 at 12:37, Benno Fünfstück <span dir="ltr"><<a href="mailto:benno.fuenfstueck@gmail.com" target="_blank">benno.fuenfstueck@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div><div><span>> I've run into a couple of cases when attempting to support multiple GHC versions in my libraries (7.6.3 -> 7.10) where I've repeatedly made mistakes due to being warned about unused imports for various modules that are now part of the Prelude such as Data.Monoid, Data.Foldable, etc. which I subsequently remove either manually or via editor automation sufficiently indistinguishable from magic.<div><br></div></span>A trick is to import Prelude at the very end, like:<br><br></div>import Control.Applicative<br></div>import Data.Monoid<br>...<br></div><div>import Prelude<br><br></div><div>Since the unused import check is done from top to bottom, and you almost always use *something* from the Prelude, this will suppress the warning.<br><br></div><div>There are some problems with qualified/explicit import lists if I recall correctly though. But it works for me most of the time.<br><br>Regards,<br></div><div>Benno<br></div></div>
<br></div></div><span class="">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></span></blockquote></div><br></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div></div>