我才刚刚开始学习haskell。我有自定义类
class MyClass a where
doSomething :: a -> ()
我可以在构造函数中使用多态性回调编写数据吗?
data MyData = MyConstructor {
callback :: (MyClass m) => m -> () -- error
}
我想对函数参数做出约束。
简而言之,是的,您可以使用 Rank2Types
或 RankNTypes
pragma。
由于您的数据类型已存在量化。实际上是
data MyData = MyConstructor (forall m. MyClass m => m -> ())
您需要更高的等级扩展名。