Создание экземпляра класса 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)'

Ответы на вопрос(4)

Ваш ответ на вопрос