6.3.1. Hiding things the imported module doesn’t export — Glasgow Haskell Compiler 9.2.1 User's Guide

# 6.3.1. Hiding things the imported module doesn’t export

Technically in Haskell 2010 this is illegal:

    module A( f ) where
      f = True

    module B where
      import A hiding( g )  -- A does not export g
      g = f

The `import A hiding( g )` in module `B` is technically an error (Haskell Report, 5.3.1) because `A` does not export `g`. However GHC allows it, in the interests of supporting backward compatibility; for example, a newer version of `A` might export `g`, and you want `B` to work in either case.

The warning `-Wdodgy-imports`, which is off by default but included with `-W`, warns if you hide something that the imported module does not export.