Я только начинаю знакомство с концепцией видов, так что несите меня, если я плохо формулирую свои вопросы...
Значения имеют типы:
3 :: Int
[1,2,3] :: [Int]
('c',True) :: (Char,Bool)
Типы имеют вид:
the type 'Int' has kind *
the type '[Int]' also has kind *
but the type constructor [] has kind * -> *
similarly, the type (Char,Bool) has kind *
but the type constructor (,) has kind * -> * -> *
Что делают виды?
Есть ли у них виды ilk, или жанры, или породы, или разновидности?
Как далеко проходит эта последовательность абстракций? Мы останавливаемся, потому что у нас заканчиваются слова, или мы останавливаемся, потому что дальше дальше нет никакой ценности? Или, может быть, потому, что мы быстро достигаем пределов человеческого познания и просто не можем обернуть головы вокруг более высокоразвитых видов?
Связанный вопрос: языки дают нам конструкторы значений (например, оператор cons) для создания значений. Языки также дают нам типы-конструкторы типа (,) или [] для создания типов. Существуют ли какие-либо языки, которые предоставляют типы-конструкторы для создания видов?
Другой краевой случай, который мне интересен: у нас, по-видимому, есть тип, который не имеет значения, обозначается как ⊥, называемый "нижним типом". Есть ли вид, который не имеет типа: нижний вид?