Создание экземпляра класса Num
Я относительно новичок в изучении haskell.
У меня есть следующий абстрактный тип данных
data Scalar =
Scalar Integer
deriving (Eq, Show)
Я хочу иметь возможность сделать следующую операцию с типом Scaler:
> (Scalar 10) + 1
> Scalar 11
Для этого я попытался сделатьScalar
экземплярnum
класс как это:
instance Num Scalar where
(Scalar i1) + i2 = (Scalar (i1+i2))
Но это не работает. Что я делаю неправильно? И как правильно это сделать?
Редактировать: Я получаю ошибку:
Couldn't match expected type `Integer' with actual type `Scalar '
In the second argument of `(+)', namely `i2'
In the first argument of `Scalar ', namely `(i1 + i2)'