我正在使用以下数据类型:
data Exp a =
|Const a
|Simetrico (Exp a)
|Mais (Exp a) (Exp a)
|Menos (Exp a) (Exp a)
|Mult (Exp a) (Exp a)
但是a
应该是数字类型。
我会这样定义Eq
:
instance Eq (Exp a) where
a == b | ... = True
| otherwise = False
但是我无处说我的a
是数字类型,所以ghci抱怨,如何解决这个问题?
答案 0 :(得分:4)
您向instance
子句添加类型约束:
instance Num a => Eq (Exp a) where
a == b | ... = True
| otherwise = False
因此,现在您可以假定(在instance
范围内,a
是Num
类型类的实例。