Functoris the class of types
f :: * -> *which can be covariantly mapped over. Mapping a function over a data structure applies the function to all the elements of the structure without changing the structure itself.
Applicativeis the class of types
f :: * -> *which allows lifted function application over a structure where the function is also embedded in that structure.