为隐藏成员生成黑线鳕

Generate Haddock for hidden members

我可以为隐藏成员生成 Haddock 文档吗?我的用例是我有一个类型 T 显示在某些函数的签名中。例如f :: T -> Ug :: T -> U。我希望我的图书馆的用户知道 T 的用途,但实际上并不导出它。是否有意义?这可能吗?

一个选项是添加

{-# OPTIONS_HADDOCK ignore-exports #-}

这将生成 Haddock 文档,就好像有一个空的导出列表一样 -- 即,就好像模块中的所有内容都已导出一样。

或者,C 预处理器可用于 hide/show Haddock 文档中的一些条目。人们可能不得不用这样的东西来调用黑线鳕(未经测试)

haddock --optghc=-cpp --optghc=-DHADDOCK ...

然后,在 haskell 来源中,

{-# LANGUAGE CPP #-}
module M
    ( export1
    , export2
#ifdef HADDOCK
    , notExportedButWeWantDocsAnyway
#endif
    , export3
    ) where
...

(我认为黑线鳕已经定义了一个宏来见证它的存在,但我在它的文档中找不到。人们总是可以使用用户定义的黑线鳕标志。或者也许是 this one .)