3
我剛開始學習haskell。我有自定義類數據構造函數中的多態回調
class MyClass a where
doSomething :: a ->()
我可以在構造函數中使用多態回調寫入數據嗎?
data MyData = MyConstructor {
callback :: (MyClass m) => m ->() -- error
}
我想約束函數參數。
我剛開始學習haskell。我有自定義類數據構造函數中的多態回調
class MyClass a where
doSomething :: a ->()
我可以在構造函數中使用多態回調寫入數據嗎?
data MyData = MyConstructor {
callback :: (MyClass m) => m ->() -- error
}
我想約束函數參數。
總之,是的,你可以通過使用Rank2Types
或RankNTypes
編譯指示。
由於您的數據類型是存在量化的。它實際上是
data MyData = MyConstructor (forall m. MyClass m => m ->())
你需要更高的等級擴展。
謝謝!有用! – brainstream