Неоднозначное имя модуля "Прелюдия" - PullRequest
14 голосов
/ 07 сентября 2011

Я получаю это, когда хочу перекомпилировать xmonad для изменения конфигурации:

Implicit import declaration:
    Ambiguous module name `Prelude':
      it was found in multiple packages: base haskell98-2.0.0.0

Xmonad был установлен через pacman. Когда я получил эту ошибку, я удалил xmonad из pacman, а затем попытался установить xmonad. Я снова получил вышеуказанную ошибку, но мне удалось ее устранить, удалив haskell98 из файла cabal.

Теперь я хочу перенастроить xmonad с MOD-Q, ошибка появляется снова, и я понятия не имею, как это исправить. Любая помощь приветствуется.

Я использую GHC версии 7.0.3 (с платформы Haskell)

Ответы [ 3 ]

15 голосов
/ 08 сентября 2011

Попробуйте это:

ghc-pkg hide haskell98
2 голосов
/ 15 июля 2012

В моем случае сокрытие haskell98, к сожалению, было недостаточным, мне пришлось удалить устаревший haskell98 из списка сборок в моем файле сборки .cabal (конечно, с сохранением base> = 4). Это читалось раньше:

build-depends:  
    base >= 4,
    haskell98

... а потом ...

build-depends:  
    base >= 4

При этом исчезло сообщение об ошибке «Неоднозначное имя модуля« Prelude »».

1 голос
/ 24 августа 2012

См. Этот GHC билет об ошибке на ту же тему:

GHC, начиная с версии 7.2.1, не будет поддерживать использование пакета haskell98 и пакета baseв то же время.Пакет haskell-src содержит оба этих параметра в build-depends, поэтому его необходимо изменить.В большинстве случаев вам нужно удалить haskell98 из build-depends и исправить любые операции импорта модулей Haskell 98, чтобы они указывали на их базовые эквиваленты.

Билет ошибки был закрыт(без исправления), и оригинальный файлер ответил:

Да, удаление haskell98 из файла .cabal, похоже, исправило его - оно скомпилировалось без ошибок.Похоже, что он не имел импорта в haskell98, потому что согласно комментарию в файле .cabal.

...