次のモジュールを検討してください
{-# 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
この場合は定型文であるため、型アノテーションは書きたくありません。それらを書き留める必要がある場合、このモジュールはその存在理由を失います。