Skip to content

Missing warning about redundant import for a class instance

I have the following module

module RedundantImport where

-- this import is redundant, but GHC does not spot it
import qualified Foreign.Storable as St

import Foreign.Storable (Storable, sizeOf, alignment, peek, poke, )
import Foreign.Ptr (castPtr, )


newtype T a = Cons a


instance Storable a => Storable (T a) where
   sizeOf (Cons a) = sizeOf a
   alignment (Cons a) = alignment a
   peek = fmap Cons . peek . castPtr
   poke p (Cons a) = poke (castPtr p) a

If loaded into GHCi with -Wall option, then GHCi does not give a warning, although the first import is redundant. It might have to do with the way how GHC accepts unqualified method names in instance implementations although the concerned method names are only imported in a qualified way.

Trac metadata
Trac field Value
Version 6.12.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC ghc@henning-thielemann.de
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information