{ - #OPTIONS_HADDOCK隐藏# - }对非导出模块有影响吗?

时间:2012-12-17 12:49:23

标签: haskell cabal haddock

假设我有一个使用Cabal打包和构建的库,并且某些模块Internal不在我的cabal文件Exposed-modules中。如果我指定一个pragma

,它会有什么不同吗?
{-# OPTIONS_HADDOCK hide #-}

位于Internal.hs的顶部,还是已经根据Haddock自动隐藏了?

如果它确实有所作为,它会产生什么影响?

1 个答案:

答案 0 :(得分:4)

如果使用--internal标记创建包的haddocks到cabal haddock,确实会有所不同。

$ cabal help haddock
Usage: cabal haddock [FLAGS]

Flags for haddock:
 -h --help                  Show this help text
 -v --verbose[=n]           Control verbosity (n is 0--3, default verbosity
                            level is 1)
  <snip>
    --executables           Run haddock for Executables targets
    --internal              Run haddock for internal modules and include all
                            symbols
  <snip>

如果创建的haddocks没有--internal标志,则hide模块属性无效:无论如何都没有为模块创建文档。

如果给出了--internal,则会为未公开的模块创建文档,但指定hide属性的文档除外。

换句话说,如果未设置{em}并且指定hide或导出模块,则会生成文档。

可以使用--internal指定--internal cabal haddock,或者手动调用cabal install --haddock-internal或使用cabal haddock界面。

大多数人只使用默认选项运行runhaskell ./Setup.hs ...,因此只有少数人会观察到差异。