J'ai récemment joué avec RankNTypes et je me demande s'il est possible de les utiliser dans les déclarations d'instance.RankNTypes pour les déclarations d'instance?
Voici un exemple simple en utilisant des types de données ouvertes
data (Expr a, Expr b) => Add a b = Add a b deriving(Show)
instance (Expr a, Expr b) => Expr (Add a b)
instance (Evaluation a, Evaluation b) => Evaluation (Add a b) where
eval (Add x y) = eval x + eval y
Ici, je dois écrire des contraintes comme (l'évaluation a, évaluation b), mais au fond, je veux juste un écrire quelque chose comme (forall a. Une évaluation). Est-ce seulement possible?
Cordialement, raichoo
Merci, je vais jouer un peu avec ça :) – raichoo