我建立简单的脚本runhaskell
,我尝试使用FastString
的ghc-7.10.2
.只是:
import FastString main = putStrLn "Hello SO"
运行它runhaskell Main.hs
导致错误:
Main.hs:1:8: Could not find module ‘FastString’ It is a member of the hidden package ‘ghc-7.10.2’. Use -v to see a list of the files searched for.
我知道我可以构建它cabal
并指定ghc
为依赖,但我真的需要这样做runhaskell
.
我怎样才能取消隐藏ghc库runhaskell
?
TL; DR:
$ ghc-pkg expose ghc
好吧,runhaskell
基本上是一个包装runghc
,runghc
基本上是ghc
.它们都遵循相同的规则:它们只能从配置的数据库中导入公开的包.
使用ghc-pkg describe {package-name}
,可以获得有关某个包的信息.这里的重要领域是exposed
:
$ ghc-pkg describe ghc | grep expose exposed: False exposed-modules:
如您所见,包未暴露(因此它是隐藏的).使用ghc-pkg expose
,您可以取消隐藏:
$ ghc-pkg expose ghc
请记住,如果要更改系统范围的数据库数据库的设置,则需要权限.