Haddock对进口实体发表评论

时间:2012-07-31 09:26:46

标签: haskell haddock

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

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

2 个答案:

答案 0 :(得分:5)

不,这是不可能的。函数可以有per-argument和per-type-param文档,如果可以的话,它会使文档不一致:

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

    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
    

    ...产生此文档:

    Haddock documentation

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

答案 1 :(得分:0)

好吧,想想看,我可以在公开的模块中写一个newtype。它不会带来运行时开销,只会让我的代码变得更加混乱......