首页 > 解决方案 > 为隐藏成员生成黑线鳕

问题描述

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

标签: haskellhaddock

解决方案


一种选择是添加

{-# OPTIONS_HADDOCK ignore-exports #-}

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

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

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

然后,在haskell源代码中,

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

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


推荐阅读