3

Haskellを学び始めたばかりです。カスタムクラスがあります

class MyClass a where
  doSomething :: a -> ()

コンストラクターでポリモーフィックコールバックを使用してデータを書き込むことはできますか?

data MyData = MyConstructor {
  callback :: (MyClass m) => m -> () -- error
}

関数の引数に制約を付けたい。

4

1 に答える 1

3

要するに、はい、Rank2TypesまたはRankNTypesプラグマを使用することで可能です。

データ型は存在記号であるため。実は

data MyData = MyConstructor (forall m. MyClass m => m -> ())

より高いランクの拡張が必要な​​場合。

于 2012-10-20T18:14:30.493 に答える