Hy, Я определил структуру данных для натуральных чисел и хотел бы определить экземпляр Eq
, чтобы узнать, равны ли два числа или нет, но я продолжаю получать сообщение: «Неоднозначное происхождение из «Eq». Он может ссылаться либо на Main.eq, либо на Prelude.eq « Не могли бы вы сказать мне, что я могу делать неправильно?define Экземпляр эквалайзера -Haskell
data Nat = Z | S Nat deriving Show
class Eq a where
(==) :: a -> a -> Bool
instance Eq Nat where
Z == Z = True
(S x) == (S y) = x == y
x == y = False
Спасибо большое!
Я верю, что вы не должны определить свой собственный 'Eq', так что класс' уравнение а, где (==) :: -> a -> Bool' является избыточным –