
#13064: Incorrect redudant imports warning -------------------------------------+------------------------------------- Reporter: phadej | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect | Unknown/Multiple error/warning at compile-time | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by rwbarton): Sorry if I am being dense here. I still don't understand why you care ''which'' import is reported as redundant. If you are only importing a module for its instances, writing an empty import list is the standard way to express that explicitly. It seems like the reason has to do with the fact that `Data.Binary.Orphans` provides instances you want that are not provided by `Data.Binary`, while `Data.Binary` does not provide any instances you want that are not provided by `Data.Binary.Orphans`. In the case of a custom prelude, "want" might even just mean that you want to make them available to your importers. So, there is no way for GHC to divine your intent in general. It certainly doesn't seem like this distinction between the two modules is related to whether or not you provide a (nonempty) explicit import list. So if you change the heuristics to handle this case to your satisfaction, it will just break a symmetric case for someone else. All in all, it seems like a lot of effort to avoid typing `()`. The RelaxedUnusedImports proposal is rather different in intent, since there the goal is to make it easier to write warning-free code across a range of versions of dependencies, while this issue is not about whether to issue a warning, but which warning to issue. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13064#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler