我试图以归纳方式定义一对类实例。即:Haskell“不”类型约束
class Foo a b | a -> b where
foo :: a -> b
instance (not?)Foo a => Bar a b
foo x = ...
instance Foo a => Bar a b
foo x = ...
第一个实例确定基本动作,秒递归调用foo。有没有办法做到这一点?一个很好的例子是扁平化一个列表,第一个例子是身份函数,第二个例子是concat的递归应用程序。
请注意,在Haskell中,不可能确定给定类型是* not *给定类型类的实例,因为其他人可以使用他们自己的代码编译您的代码来提供实例。 – 2012-03-04 01:41:17