interface Functor f => Applicative f where
pure : a -> f a
(<*>) : f (a -> b) -> f a -> f b
Un Functor qui sait aussi élever une valeur pure dans le contexte (pure) et appliquer une fonction encapsulée à un argument encapsulé ((<*>), « apply »).
Lois (pour mémoire) : pure id <*> v == v, et pure se distribue sur l'application. pure x injecte x sans aucun effet ; pf <*> px exécute pf et px et applique l'une à l'autre.