Технически в Haskell 2010 это запрещено:
module A( f ) where f = True module B where import A hiding( g ) -- A does not export g g = f
Элемент import A hiding( g ) в модуле B технически является ошибкой (Отчёт по Haskell, 5.3.1), так как модуль A не экспортирует g. Однако GHC разрешает это в целях обеспечения обратной совместимости; например, более новая версия A может экспортировать g, и вы хотите, чтобы B работало в обоих случаях.
Предупреждение -Wdodgy-imports, которое отключено по умолчанию, но включено с -W, предупреждает, если вы скрываете элемент, который импортируемый модуль не экспортирует.