我有一个类型构造函数
type SimpleFcn α m = m α -> m α
我希望在稍后将进一步参数化的类中使用它。即,
instance A (SimpleFcn α)
在我的情况下,类A
中的任何函数都将在参数m
中具有参数。
class A β where f :: Monad m => β m
instance A (SimpleFcn α) where f x = x
这种情况的适当解决方法是什么?
答案 0 :(得分:3)
部分应用类型同义词是不可能的,因为它们只是缩短代码而不是真正的类型级lambda的一种方法。您可以尝试使用newtype
代替。