4

データ ファミリ インスタンスのコンストラクタをエクスポートするにはどうすればよいですか? 私は成功せずにさまざまな方法を試しました(コメントアウトされたコードを参照してください):

module Test (
    --Foo () (..)
    --type Foo () (..)
    --UnitBar
) where

class Foo a where
    data Bar a :: *

instance Foo () where
    data Bar () = UnitBar

コンストラクターを正常にエクスポートできた唯一の方法は、

module Test where

括弧がないことに注意してください。このアプローチの欠点は、情報が多すぎることです。

4

1 に答える 1

9

使用する

module Test (
    Bar(..)
) where

関連するデータ ファミリからすべてのコンストラクタをエクスポートしますBar。または

module Test (
    Bar(UnitBar)
) where

単一のコンストラクターのみをエクスポートします。

詳細については、GHC のドキュメントの関連セクションを参照してください。

于 2013-09-30T08:00:47.957 に答える