3

Haddock を使用してクラス メソッドをドキュメント化し、インスタンス宣言コードでドキュメントの一部をクエリすることは可能ですか?

たとえば、クラスを次のように文書化したいと思います。

class ModifMATH a  where
  -- | Explanations of simpMath method.
  -- 
  --
  -- $part1
  -- $part2
  -- $part3      
  simpMath :: a -> a

およびこのように文書化されたインスタンス:

instance ModifMATH MathExpress where
  -- $part1 a piece of explanation
  simpMath (MathDouble n)            = ...   

  -- $part2 another explanation 
  simpMath (MathMult a b)   = ...

  -- $part3 end of explanations 
  simpMath (MathAdd a b)   =  ...

html Haddock のドキュメントを次のように取得します (申し訳ありませんが、画像がありません)。

class ModifMATH a where
   Methods
      simpMath :: a -> a
         Explanations of simpMath method.
         a piece of explanation
         another explanation
         end of explanations

メソッドのドキュメント全体をスタンドアロンの段落に保持しながら、インスタンスにパターンを追加する場合、ドキュメントのこの編成はより読みやすく、拡張しやすくなります。出来ますか?

Haddock バージョン 2.10.0 を使用しています。Debian 7.0 で。

ご協力ありがとうございました。

4

1 に答える 1

2

いいえ、このようにドキュメントを分割することはできません。

多かれ少なかれこれを行うことができる唯一の場所は、レコード フィールドの疑わしい使用の場合でしたが、ここでは適用されず、2.14.x でこの動作を変更しました。

おそらく、定義リストを使用して、ドキュメントを自然に分割することができます。たとえば、次のようなもの

class ModifMATH a  where
  -- | Explanations of simpMath method.
  -- 
  -- [MathDouble case] $part1
  --
  -- [MathMult case] $part2
  --
  -- [MathAdd case] $part3      
  simpMath :: a -> a

ドキュメントは、使用しているものよりもかなり新しい 2.14.x バージョンを参照していることに注意してください。たとえば、各定義リスト間の改行が必要です。

多かれ少なかれ次のようになります。

デリスト
(出典:風ゼツ.co.uk )

必要に応じて複数行にできます。ドキュメントを参照してください。

于 2014-05-10T09:58:15.547 に答える