EndoFunctor
Monad