我是 Haskell 的新手,正在尝试使用实例创建一个类。
我有以下代码,我想说的是:1)Branch 可以在其第一个位置保存任何类型,2)创建一个 Linear 类,它采用线性事物并返回一个数字 3)如果Branch 拥有的第一件事是 Num 类的一部分。
data Branch a = Branch a Integer deriving (Show, Eq)
class Linear l where
length :: (Num a) => l -> a
instance (Num a) => Linear (Branch a) where
length (Branch len _) = len
我收到错误消息:无法从实例声明绑定的上下文 (Num a) 中推断出 (a ~ a1) ...
有人知道如何在 Haskell 中表达我想说的话吗?