9

我正在构建简单的脚本,runhaskell并尝试使用FastStringfrom 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

4

1 回答 1

5

TL;博士:

$ ghc-pkg expose ghc

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

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

$ ghc-pkg describe ghc | grep expose
exposed: False
exposed-modules:

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

$ ghc-pkg expose ghc

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

于 2015-12-03T11:30:01.343 回答