Какое понятие в теории категорий можно использовать для представления класса типов?

На языке программирования Haskell, согласно https://en.wikibooks.org/wiki/Haskell/Category_theory

59.2.2 Перевод категоричных понятий на Хаскель

  1. Мы работаем в категории Hask и его подкатегории.

  2. Объекты являются типами.

  3. Морфизмы - это функции.

  4. Вещи, которые принимают тип и возвращают другой тип, являются конструкторами типов.

  5. Вещи, которые принимают функцию и возвращают другую функцию, являются функциями высшего порядка.

  6. Классы типов, наряду с полиморфизмом, который они предоставляют, позволяют лучше понять тот факт, что в теории категорий вещи часто определяются сразу по нескольким объектам.

Какое понятие в теории категорий представлено как класс типов? Как подкатегория Hask?

1 ответ

По словам Доминика Орчарда, классы типов соответствуют подкатегориям Hask:

Экземпляры одного класса типа параметра могут интерпретироваться как описание членов набора типов (или отношения к типам для классов с несколькими параметрами). В сигнатуре типа универсально квантифицированная переменная типа, ограниченная ограничением класса типа, представляет коллекцию типов, которые являются членами класса. Например, для Eq класс, следующая сигнатура типа описывает коллекцию типов, для которых есть экземпляры Eq:

 Eq a => a

Члены Eq являются коллекцией объектов Hask. Аналогично, тип:

 (Eq a, Eq b) => (a -> b)

представляет собой подмножество морфизмов отображения Хаск между объектами в подколлекции объектов, которые являются членами Eq, Таким образом Eq класс определяет Eq-подкатегория Хаск с указанными выше подколлекциями объектов и морфизмов.