我正在学习 Haskell。想象一下,我有以下内容:
data Coordinate = Coordinate double
我希望为Coordinate
.
instance Semigroup (Coordinate a) where
Coordinate a <> Coordinate b = Coordinate (a+b)
类型检查器对我不满意:
• Expected kind ‘* -> *’, but ‘Coordinate’ has kind ‘*’
• In the first argument of ‘Semigroup’, namely ‘(Coordinate a)’
In the instance declaration for ‘Semigroup (Coordinate a)’
|
175 | instance (Num a) => Semigroup (Coordinate a) where
(我知道这只是一个双倍的空容器,我可能已经在使用双倍本身,但我正在学习 Haskell,我想了解它是如何工作的。)