Préface
Remerciements
Introduction
I Notions de base
1 - L’algèbre implicite des types
1.1 - Isomorphismes et cardinalités
1.2 - Types Somme, Produit et Exponentiel
1.3 - Exemple : jeu de morpion
1.4 - L’isomorphisme de Curry-Howard
1.5 - Représentations canoniques
2 - Termes, Types et Genres
2.1 - Le système de genres
2.1.1 - Le genre des « types »
2.1.2 - Les genres Flèche
2.1.3 - Les genres Contrainte
2.2 - Les genres Donnée
2.3 - Promotion des types intégrés
2.3.1 - Symboles
2.3.2 - Nombres naturels
2.3.3 - Listes
2.3.4 - Tuples
2.4 - Fonctions de niveau type
3 - Variance
II Levée des restrictions
4 - Utilisation des types
4.1 - Portée du type
4.2 - Applications de type
4.3 - Types ambigus
5 - Contraintes et TDAGs
5.1 - Introduction
5.2 - TDAGs
5.3 - Listes hétérogènes
6 - Types de rang N
6.1 - Introduction
6.2 - Rangs
6.3 - Détails de l’affaire
6.4 - Monade de relais
7 - Types existentiels
7.1 - Types existentiels et éliminateurs
7.1.1 - Types dynamiques
7.1.2 - Existentiels de genre Contrainte Généralisée
7.2 - Encadrer la portée de l’information à l’aide d’existentiels
8 - Rôles
8.1 - Coercitions
8.2 - Rôles
III Programmer au niveau Type
9 - Familles de types associées
9.1 - Construire des types à partir d'un schéma
9.2 - Création de termes associés
10 - Familles de première classe
10.1 - Défonctionnalisation
10.2 - Défonctionnalisation au niveau type
10.3 - Travailler avec les familles de première classe
10.4 - Polymorphisme ad hoc
11 - Données extensibles
11.1 - Introduction
11.2 - Sommes ouvertes
11.3 - Produits ouverts
11.4 - Étiquettes surchargées
12 - Erreurs de type personnalisées
13 - GHC.Generics
13.1 - Représentations génériques
13.2 - Dérivation du polymorphisme structurel
13.3 - Utilisation de métadonnée générique
13.4 - Performance
13.5 - Extensions Kan
14 - Monades indexées
14.1 - Définition et mécanisme nécessaire
14.2 - Attributions linéaires
15 - Types dépendants
15.1 - Vue d’ensemble
15.2 - Mise en œuvre ad hoc
15.3 - Machinerie généralisée
15.4 - Le paquet Singletons
15.5 - Paires dépendantes
15.5.1 - Journalisation structurée
IV Annexes
Glossaire
Solutions
Bibliographie
À propos de l’auteur
