Подтвердить что ты не робот

GHCI не может загружать модуль, если в нем содержатся как пакеты, так и исходный путь

Я сталкиваюсь с странной ситуацией в GHCI, не знаю, наблюдал ли кто-либо подобный случай. Для некоторого модуля, когда он находится в пути поиска как с помощью -package-conf, так и с помощью -i, GHCI терпит неудачу, когда я пытаюсь импортировать модуль с помощью 'module is not loaded: FooModule'.

  • :module загружает его, однако
  • или я могу сделать :load FooModule, :m, чтобы очистить список импорта, а затем import FooModule
  • или я могу удалить путь из -i, а затем импортирует штраф

Отслеживает это как случай otherwise -> modNotLoadedError m loc в GHC, где otherwise ~ modulePackageId = this_pkg (смысл которого я не знаю).

Это не является полностью систематическим, есть некоторые модули, которые находятся в пути пакета и источника, но могут быть импортированы.

4b9b3361

Ответ 1

GHC знает только о установленных пакетах. Чтобы узнать, какие пакеты установлены, используйте команду списка ghc-pkg:

$ ghc-pkg list
/usr/lib/ghc-6.12.1/package.conf.d:
    Cabal-1.7.4
    array-0.2.0.1
    base-3.0.3.0
    base-4.2.0.0
    bin-package-db-0.0.0.0
    binary-0.5.0.1
    bytestring-0.9.1.4
    containers-0.2.0.1
    directory-1.0.0.2
    (dph-base-0.4.0)
    (dph-par-0.4.0)
    (dph-prim-interface-0.4.0)
    (dph-prim-par-0.4.0)
    (dph-prim-seq-0.4.0)
    (dph-seq-0.4.0)
    extensible-exceptions-0.1.1.0
    ffi-1.0
    filepath-1.1.0.1
    (ghc-6.12.1)
    ghc-prim-0.1.0.0
    haskeline-0.6.2
    haskell98-1.0.1.0
    hpc-0.5.0.2
    integer-gmp-0.1.0.0
    mtl-1.1.0.2
    old-locale-1.0.0.1
    old-time-1.0.0.1
    pretty-1.0.1.0
    process-1.0.1.1
    random-1.0.0.1
    rts-1.0
    syb-0.1.0.0
    template-haskell-2.4.0.0
    terminfo-0.3.1
    time-1.1.4
    unix-2.3.1.0
    utf8-string-0.3.4