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 <brendan.g.hay@gmail.com> wrote:
Thanks for the tips!

On 12 April 2015 at 12:37, Benno Fünfstück <benno.fuenfstueck@gmail.com> 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