GHCI ne peut pas charger le module si package-conf et source path le contiennent

Je rencontre une situation étrange dans GHCI , je ne sais pas si quelqu’un a observé un cas similaire. Pour certains modules, quand je l’ai dans le chemin de recherche à la fois par -package-conf et -i , GHCI échoue lorsque j’essaie d’importer le module avec 'module is not loaded: FooModule' .

  • :module charge bien cependant
  • ou je peux faire :load FooModule :m pour effacer la liste d’importation, puis import FooModule
  • ou je peux supprimer le chemin de -i et il importe bien

Suivi de ceci pour être le otherwise -> modNotLoadedError m loc dans GHC , otherwise ~ modulePackageId = this_pkg (la signification de laquelle je ne sais pas).

Ce n’est pas tout à fait systématique, il y a des modules qui sont à la fois dans le paquet et dans le chemin source, mais qui peuvent être importés.

GHC ne connaît que les paquets installés. Pour voir quels paquets sont installés, utilisez la commande ghc-pkg list:

 $ 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 bytessortingng-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-ssortingng-0.3.4