详细地说,通常可以为类型类实例函数提供默认实现,但我想知道是否也可以为其他类型类的类型类实例提供默认实现。
例如,假设我正在实现类型 classY
并且我希望所有实例a
都Y
满足X a
其他类型 class X
。最初我试图通过写作来做到这一点instance Y a => X a where ...
,但看到这实际上是不可能的(Haskell Constraint 不小于实例头)。但是,与另一个问题中描述的可能有多个类型类约束的更一般情况不同,我的情况下只有一个类约束,所以我认为可能有一种方法可以在课堂上做到这一点定义级别,可能使用 Haskell 语言扩展。
另一个问题中描述的方法似乎不太顺利 - 假设X
实际上是Ord
. Ord
由 some包装可防止在原始类型上newtype
直接使用函数。Ord