Haddock:实例函数的文档,其中quirks被默认类文档替换

时间:2013-07-20 04:34:18

标签: haskell haddock

考虑以下示例:

instance (Monad m) => MonadState s (ChronoT s e m) where

    -- | Returns the present-day state.
    get   = ChronoT $ do
        (ChronoS _ s _) <- get
        return s

    -- | Set the present-day state directly, erasing the past and future for
    --   safety. See also 'paradox'.
    put x = ChronoT $ do
        (ChronoS _ _ _) <- get
        put $ mkChronoS x

当通过haddock运行时,函数getput会显示,但它们正在使用MonadState的默认文档。如何在我的模块中包含我自己的文档?

(您可以在回购here上运行cabal haddock来了解我的意思

1 个答案:

答案 0 :(得分:3)

你不能。

您可以做的是记录您的实例。

-- | You can have a brief description here
instance (Monad m) => MonadState s (ChronoT s e m) where
…

这将使描述显示在生成的instances框的旁边。这应该最好是简短的,但它确实允许你做一些事情,例如,如果你真的需要,请指导用户记录实现字段的函数,就像问题的评论者所说的那样。

就我个人而言,我认为以这样的方式记录每个字段没有多大意义:字段的意图应该从类定义的文档和实例的注释中清楚。