如何使用runhaskell取消隐藏ghc库

rem*_*ezx 8 haskell ghc runhaskell

我建立简单的脚本runhaskell,我尝试使用FastStringghc-7.10.2.只是:

import FastString

main = putStrLn "Hello SO"
Run Code Online (Sandbox Code Playgroud)

运行它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.
Run Code Online (Sandbox Code Playgroud)

我知道我可以构建它cabal并指定ghc为依赖,但我真的需要这样做runhaskell.

我怎样才能取消隐藏ghc库runhaskell

Zet*_*eta 5

TL; DR:

$ ghc-pkg expose ghc
Run Code Online (Sandbox Code Playgroud)

好吧,runhaskell基本上是一个包装runghc,runghc基本上是ghc.它们都遵循相同的规则:它们只能从配置的数据库中导入公开的包.

使用ghc-pkg describe {package-name},可以获得有关某个包的信息.这里的重要领域是exposed:

$ ghc-pkg describe ghc | grep expose
exposed: False
exposed-modules:
Run Code Online (Sandbox Code Playgroud)

如您所见,包未暴露(因此它是隐藏的).使用ghc-pkg expose,您可以取消隐藏:

$ ghc-pkg expose ghc
Run Code Online (Sandbox Code Playgroud)

请记住,如果要更改系统范围的数据库数据库的设置,则需要权限.