Je veux écrire une classe de type monad qui spécifiera quelques actions de base pour une monade DSL (langage spécifique au domaine). class Monad => MyDSLMonad where
type ExprTyp :: * -> *
va
Je souhaite définir le type du paramètre d'état, d'un transformateur de monadat d'état, sur un type associé de ce transformateur monad. Cependant, il en résulte la construction d'un type infini, s = A