
#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): I'm afraid I'm lost. You say "but `Binary Value` instance is imported from `Data.Binary.Orphans`"; but the error message explicitly says {{{ except perhaps to import instances from ‘Data.Binary.Orphans’ }}} so I don't see a problem. In general given a set of imports that is redundant, there isn't a unique way to remove imports to eliminate the redundancy. For example if I import modules `A` and `B` which both export `f` and I use `f` but nothing else from either `A` or `B`, then either the import of `A` or of `B` can be removed, but not both. In such cases GHC has to make a choice about which import to report as redundant. In your example it seems that GHC's choice changed between versions, probably having to do with the fact that you mentioned `Binary` in an explicit import list. I'm pretty sure that if you reverse the order of your two `import Data.Binary` lines, GHC 7.10.3 will give the same error you are getting with GHC 8.0.1. In any case the solution is to add an empty import list as the error message suggests. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13064#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler