This is getting a lot harder, but: module A where data Foo = Foo module B(module A) where import A hiding (Foo) import A (Foo) module C where import B f = Foo -- should fail, but doesn't