История изменений
Исправление provaton, (текущая версия) :
Ну вот, например, в порядке бреда:
instance Num Bool where
x + _ = x
x * _ = x
abs x = x
signum x = x
fromInteger x | x == 0 = False
| otherwise = True
Это объявление абсолютно валидное, теперь операция True + False будет иметь для компилятора смысл. Но если я напишу True + 2.5, то что должен делать компилятор?
Исходная версия provaton, :
Ну вот, например, в порядке бреда:
instance Num Bool where
x + _ = x
x - _ = not x
x * _ = x
abs x = x
signum x = x
fromInteger x | x == 0 = False
| otherwise = True
Это объявление абсолютно валидное, теперь операция True + False будет иметь для компилятора смысл. Но если я напишу True + 2.5, то что должен делать компилятор?