有没有办法将 Haddock 文档添加到导出它的模块中的实体,而不是声明它的实体?
我有一个隐藏模块,它声明了十几种类型,然后是另一个模块,它只导出最终用户应该看到的部分。将文档放在公开模块而不是隐藏模块中是合乎逻辑的。但我无法弄清楚如何做到这一点......
不,这是不可能的。函数可以有每个参数和每个类型参数的文档,如果可以的话,它会使文档不一致:
以下文件:
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
...产生此文档:
如您所见,您可以使用部分注释来模拟函数文档字符串,但只有在类型签名旁边使用函数文档注释时,才能正确生成文档。
好吧,想想看,我可以newtype
在暴露的模块中写一个。它没有运行时开销,它只是让我的代码更加混乱......