实例声明中部分应用的类型构造函数

时间:2011-08-28 21:22:59

标签: haskell typeclass

我有一个类型构造函数

type SimpleFcn α m = m α -> m α

我希望在稍后将进一步参数化的类中使用它。即,

instance A (SimpleFcn α)

在我的情况下,类A中的任何函数都将在参数m中具有参数。

class A β where f :: Monad m => β m
instance A (SimpleFcn α) where f x = x

这种情况的适当解决方法是什么?

1 个答案:

答案 0 :(得分:3)

部分应用类型同义词是不可能的,因为它们只是缩短代码而不是真正的类型级lambda的一种方法。您可以尝试使用newtype代替。