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.12.1/docs/users_guide/exts/hiding_unexported.html

Spec-Zone.ru

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