6

次のモジュールを検討してください

{-# LANGUAGE RecordWildCards #-}
module Example (foo, fuh, fon, fuzz) where

import qualified FirstClassModule (Bar(foo,fuh,fon,fuzz), makeBar)

FirstClassModule.Bar {..} = FirstClassModule.makeBar parameter

parameter :: Int
parameter = 15

このモジュールは、ファーストクラスモジュールのように機能FirstClassModuleするレコードタイプを提供することを目的としています。Bar次に、モジュールはモジュールExampleをインスタンス化し、RecordWildCards拡張機能を使用して名前をスコープに取り込み、エクスポート可能にします。

このモジュールでHaddock(バージョン2.8)を実行すると、foo関数の型シグネチャが干渉され、APIドキュメントに含まれます。さて、私の質問は:

モジュールに型署名を書き留めfooに、結果の名前fuhなどを文書化する方法はありますか?Example

この場合は定型文であるため、型アノテーションは書きたくありません。それらを書き留める必要がある場合、このモジュールはその存在理由を失います

4

2 に答える 2

1

ハドックのユーザーマニュアルから:

http://www.haskell.org/haddock/doc/html/markup.html#id564988

Haddock には Haskell 型システムが含まれていないことに注意してください。関数の型シグネチャを記述しないと、Haddock はその型が何であるかを判断できず、ドキュメントに含まれません。

ドキュメントはバージョン 2.8 用で、バージョン 2.9 が最新です。

于 2011-05-01T15:28:31.167 に答える
0

実際、バージョン 2.9.2 の時点で、Haddock はエクスポートされた関数の型シグネチャを推測するようになることを知りました。残念ながら、追加のドキュメントでそれらを装飾する方法を見つけることができないようです。

たとえば、モジュール

module Test (foo) where

foo = "bar"

型シグネチャを生成します

foo :: String

ドキュメントに記載されていますが、テキストを追加できないようです。

于 2011-12-30T21:20:42.013 に答える