
Hi,
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:
import Control.Applicative ((<$>))
which will still result in a warning. Simply change it to
import Control.Applicative
import Prelude
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.
Also change
import <module> (<f>)
to
import <module> hiding (<everything except f>)
if you want to avoid CPP at all cost.
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).
Michal
On Sun, Apr 12, 2015 at 3:45 PM, Brendan Hay
Thanks for the tips!
On 12 April 2015 at 12:37, Benno Fünfstück
wrote: 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.
A trick is to import Prelude at the very end, like:
import Control.Applicative import Data.Monoid ... import Prelude
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.
There are some problems with qualified/explicit import lists if I recall correctly though. But it works for me most of the time.
Regards, Benno
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe