Foncteurs & Applicatifs
-
Donnez la déclaration d'instance qui permet de faire du type fonction partiellement appliquée `(a ->)` un foncteur
Commencer par écrire le type de `fmap` et regarder si une fonction du prélude a cette signature
-
Donnez la déclaration d'instance qui permet de faire de ce même type un applicatif
Monades
Soit le type d'expression suivant : `data Exp a = Var a | Val Int | Add (Exp a) (Exp a)`
-
Faire de `Exp a` un foncteur.
-
Faire de `Exp a` un applicatif.
-
Faire de `Exp a` une monade.