6

次の例を検討してください。

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 のデフォルトのドキュメントが使用されています。モジュールに独自のドキュメントを含めるにはどうすればよいですか?

(ここcabal haddockでレポを実行することで、私が何を意味するかを確認できます)

4

1 に答える 1

3

できません。

できることは、インスタンスを文書化することです。

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

instancesこれにより、生成されたボックスの側面に説明が表示されます。これはできれば簡潔にする必要がありますが、質問に対するコメント投稿者が示唆するように、本当に必要な場合は、フィールドを実装する関数のドキュメントにユーザーを誘導するなどのことができます。

個人的には、このように各フィールドを文書化するのはあまり意味がないと思います。フィールドの目的は、クラス定義の文書化とインスタンスのコメントから明確にする必要があります。

于 2014-02-19T05:32:23.653 に答える