2

有没有办法将 Haddock 文档添加到导出它的模块中的实体,而不是声明它的实体?

我有一个隐藏模块,它声明了十几种类型,然后是另一个模块,它只导出最终用户应该看到的部分。将文档放在公开模块而不是隐藏模块中是合乎逻辑的。但我无法弄清楚如何做到这一点......

4

2 回答 2

5

不,这是不可能的。函数可以有每个参数和每个类型参数的文档,如果可以的话,它会使文档不一致:

  1. 在不同的位置写不同的版本
  2. 让一个版本覆盖另一个
  3. 在参数文档中引入不一致:如果您覆盖函数的主文档字符串怎么办;应该删除参数文档字符串吗?

以下文件:

module Bla
       ( -- * Fooishness

         -- | This is 'foo'. It is not 'bar'.
         foo
       , -- * Barishness

         -- | This is 'bar'. It is sometimes a little 'foo'.
         bar
       ) where

-- | The actual foo documentation
foo :: a -- ^ The a
    -> b -- ^ The b
    -> c
foo = undefined

-- | The actual bar documentation
bar :: a
bar = undefined

...产生此文档:

黑线鳕文档

如您所见,您可以使用部分注释来模拟函数文档字符串,但只有在类型签名旁边使用函数文档注释时,才能正确生成文档。

于 2012-07-31T09:51:54.130 回答
0

好吧,想想看,我可以newtype在暴露的模块中写一个。它没有运行时开销,它只是让我的代码更加混乱......

于 2012-07-31T09:57:07.607 回答