Punaise, j'avais commencé à écrire un commentaire en se basant sur les types fantômes (ajouter une information qui n'est valable que du compilateur pour restreindre un type trop ouvert) mais ça ne marche pas !!
Bon, je poste quand même la tentative pour l'histoire...
Malheureusement, les deux types ne sont pas incompatibles comme on pourrait le croire :
#leta:coord2coordonate=(coord234);;vala:coord2coordonate=(3,4)(* on peut caster le résultat sans erreur... *)#leta:coord1coordonate=(coord234);;vala:coord1coordonate=(3,4)#leta:stringcoordonate=(coord234);;vala:stringcoordonate=(3,4)(* soyons fous ! *)#leta:stringlistlistlistcoordonate=(coord234);;vala:stringlistlistlistcoordonate=(3,4)
C'est dommage, je me serai attendu à plus de sûreté sur ce plan là de la part du langage !
# Type fantôme
Posté par chimrod (site web personnel) . En réponse au journal Une petite histoire d'utilisation type fort dans Ocaml. Évalué à 2.
Punaise, j'avais commencé à écrire un commentaire en se basant sur les types fantômes (ajouter une information qui n'est valable que du compilateur pour restreindre un type trop ouvert) mais ça ne marche pas !!
Bon, je poste quand même la tentative pour l'histoire...
le 'a indique ici un type abstrait, qui doit être nécessairement renseigné pour être utilisé, ce que nous allons faire :
Malheureusement, les deux types ne sont pas incompatibles comme on pourrait le croire :
C'est dommage, je me serai attendu à plus de sûreté sur ce plan là de la part du langage !