我正在使用以下数据类型:
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会报错,我该如何解决?
instance (Show a, Num a) => Eq (Exp a) where ...
。但在一个Eq
实例中使用show
是相当奇怪的。 - Willem Van OnsemShow (Exp a) where
,你可能还应该添加类型约束,因此instance Show a => Show (Exp a) where ...
。 - Willem Van Onsem