Pour rendre deux instances du type 'a P.t incompatibles, en choisissant des types incompatibles pour la valeur du type fantôme (int et float dans les exemples de octachron).
Dans l'usage des modules que j'ai proposé, on avait deux modules A et B dont les types étaient incompatibles : bien que structurellement identiques, comme ils étaient abstraits, les types A.t et B.t étaient incompatibles.
Dans l'approche avec type fantôme, il n'y a qu'un seul module et les types a P.t et b P.t sont rendus incompatibles par un choix adapté du type fantôme. Un des avantages que je vois, au premier abord, par rapport à ma solution, et que cela évite de dupliquer (dans deux modules distincts) les fonctions qui opèrent sur les types en questions. Tu pourrais, par exemple, définir deux type vides :
[^] # Re: Type fantôme
Posté par kantien . En réponse au journal Une petite histoire d'utilisation type fort dans Ocaml. Évalué à 2. Dernière modification le 18 janvier 2017 à 14:18.
Pour rendre deux instances du type
'a P.tincompatibles, en choisissant des types incompatibles pour la valeur du type fantôme (intetfloatdans les exemples de octachron).Dans l'usage des modules que j'ai proposé, on avait deux modules
AetBdont les types étaient incompatibles : bien que structurellement identiques, comme ils étaient abstraits, les typesA.tetB.tétaient incompatibles.Dans l'approche avec type fantôme, il n'y a qu'un seul module et les types
a P.tetb P.tsont rendus incompatibles par un choix adapté du type fantôme. Un des avantages que je vois, au premier abord, par rapport à ma solution, et que cela évite de dupliquer (dans deux modules distincts) les fonctions qui opèrent sur les types en questions. Tu pourrais, par exemple, définir deux type vides :puis faire un module de coordonnées :
et définir tes variables avec des annotations comme cela :
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.