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