So it appears that GHC will warn about "unused" imports when you import qualified if you could have gotten the symbol from somewhere else. For instance, if you write:
import qualified Control.Monad.Trans as Trans import qualified Control.Monad.Writer as Writer and use "Trans.lift", it will complain because you could have used "Writer.lift". Then if you go import State, it will want you to use State.liftIO instead of Trans.liftIO (Writer doesn't have liftIO). Now, one question is why these modules are exporting random stuff from Trans, but in general the practice of warning when you use qualified imports seems not only misleading (since if you comment out the import your code breaks, and it's not obvious where it wanted you to get the symbol), but brittle since a messy export list on some module you import can suddenly trigger a flood of warnings. So I'd suggest that if you say "import qualified M" and then use "M.something", then "M is unused" msgs shouldn't appear. warn-unused-imports is genuinely useful most of the time, so I don't like to put on -fno-warn-unused-imports. Is there a better way to suppress the "false positives" here? _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe