Ответ 1
Попробуйте следующее:
ghc-pkg hide haskell98
Я получаю это, когда хочу перекомпилировать xmonad для изменения конфигурации:
Implicit import declaration:
Ambiguous module name `Prelude':
it was found in multiple packages: base haskell98-2.0.0.0
Xmonad был установлен через pacman. Когда я получил эту ошибку, я удалил xmonad из pacman, а затем попытался установить xmlad. Я снова получил вышеуказанную ошибку, но я смог ее решить, удалив haskell98 из файла cabal.
Теперь я хочу перенастроить xmonad с MOD-Q, ошибка появляется снова, и я не знаю, как это исправить. Любая помощь была оценена.
Я использую GHC версии 7.0.3 (с платформы Haskell)
Попробуйте следующее:
ghc-pkg hide haskell98
В моем случае скрытие haskell98, к сожалению, было недостаточным, мне пришлось удалить устаревший haskell98 из списка, зависящего от сборки, в моем файле сборки .cabal(сохраняя базу >= 4, конечно). Он читал раньше:
build-depends:
base >= 4,
haskell98
... и затем...
build-depends:
base >= 4
С этим исчезло сообщение об ошибке "Недопустимое имя модуля" Прелюдия "выше.
Смотрите этот GHC биг-код по этому вопросу:
GHC, начиная с версии 7.2.1, не будет поддерживать использование
haskell98
пакет и пакетbase
в одно и то же время. Пакетhaskell-src
имеет оба из них в своемbuild-depends
, поэтому он должен быть модифицирована. Большую часть времени вы хотите удалитьhaskell98
отbuild-depends
и исправить импорт импортных модулей Haskell 98 в указывают на их базовые эквиваленты.
Биг-билет был закрыт (без исправления), и исходный фидер ответил:
Да, удаление haskell98 из файла .cabal, похоже, исправил его - он компилировались без ошибок. Похоже, у него не было импорта to haskell98, потому что согласно комментарию в файле .cabal.