Je commence seulement à me familiariser avec le concept des genres, alors soyez indulgent avec moi si je ne formule pas bien mes questions...
Les valeurs ont des types :
3 :: Int
[1,2,3] :: [Int]
('c',True) :: (Char,Bool)
Les types ont des genres :
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 * -> * -> *
Qu'est-ce que les Kinds ont ?
Les genres ont-ils un genre, des genres, des races ou des variétés ?
Jusqu'où va cette séquence d'abstraction ? S'arrête-t-on parce qu'on manque de mots, ou parce qu'aller plus loin n'a aucune valeur ? Ou, peut-être, parce que nous atteignons rapidement les limites de la cognition humaine et que nous ne parvenons pas à comprendre les types d'une génération supérieure ?
Une question connexe : les langages nous fournissent des constructeurs de valeurs (comme l'opérateur cons) pour créer des valeurs. Les langages nous donnent également des constructeurs de type comme (,) ou [] pour créer des types. Existe-t-il des langages qui exposent des constructeurs de type pour créer des types ?
Un autre cas limite qui m'intrigue : Nous avons apparemment un type qui n'a pas de valeur, noté comme , appelé "le type de fond". Existe-t-il une sorte qui n'a pas de type : une sorte inférieure ?