我试图理解这个问题中给出的关于可变参数函数的示例,并尝试从以下位置修改代码:
class SumRes r where
sumOf :: Integer -> r
instance SumRes Integer where
sumOf = id
instance (Integral a, SumRes r) => SumRes (a -> r) where
sumOf x = sumOf . (x +) . toInteger
对此:
class SumRes r where
sumOf :: Int -> r
instance SumRes Int where
sumOf = id
instance (SumRes r) => SumRes (Int -> r) where
sumOf x = sumOf . (x +)
我得到一个Illegal instance declaration for SumRes (Int -> r)
. 有人可以解释这意味着什么以及我反对的限制是什么?