为什么包默认隐藏?我怎么能“取消隐藏”呢?

时间:2011-03-09 20:58:17

标签: haskell packages ghc

我正在运行Ubuntu 10.10,我通过Ubuntu软件包transformers安装了libghc6-transformers-dev模块。出于某种原因,默认情况下隐藏此包:

ghc --make -i./src/ src/fastcgi.hs -o myapp.fcgi

src/MyApp/Webapp.hs:6:7:
    Could not find module `Control.Monad.IO.Class':
      It is a member of the hidden package `transformers-0.2.1.0'.
      Use -v to see a list of the files searched for.

所以,我的第一个问题是,“为什么?”。我的第二个问题是,“取消隐藏”该模块的正确方法是什么(无需通过命令行明确指定模块)?这是一个好/坏的想法吗?

注意,我可以通过显式传递包名来获得ghc编译,如下所示:

ghc --make -package transformers -i./src/ src/fastcgi.hs -o myapp.fcgi

2 个答案:

答案 0 :(得分:7)

使用命令行中的ghc-pkg工具:

ghc-pkg expose transformers

为什么它默认隐藏我不知道。这可能是Ubuntu软件包维护者所需要的。

另外,

ghc-pkg help

会告诉你更多有关此计划的信息。

答案 1 :(得分:0)

使用Stack进行构建时,将transformers作为依赖项添加到package.yml文件中:

dependencies:
- base >= 4.7 && < 5
- transformers

这对我来说是永久性的。