Spec-Zone.ru › Haskell 9

6.3.1. Скрытие элементов, которые импортируемый модуль не экспортирует

Формально в 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, указывает на попытку скрыть элемент, который импортируемый модуль не экспортирует.

© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/9.14.1/docs/users_guide/exts/hiding_unexported.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API