Класс типов (Haskell)

Класс типовидиома в языке программирования Haskell, одна из пяти программных сущностей этого языка. Описывает интерфейс типов, для которых должен определяться набор некоторых методов. Дополнительно могут описываться не только сигнатуры методов, но и их связи друг с другом, а также приоритетность бинарных операций.

Например, класс Eq, описывающий типы значений, для которых имеется отношение эквивалентности:

class Eq a where
  (==) :: a -> a -> Bool
  (/=) :: a -> a -> Bool

(==) = not . (/=)
(/=) = not . (==)