The identity functor and monad.
This trivial type constructor serves two purposes:
It can be used with functions parameterized by functor or monad
classes.
It can be used as a base monad to which a series of monad
transformers may be applied to construct a composite monad. Most monad
transformer modules include the special case of applying the
transformer to Identity. For example, State s is an
abbreviation for StateT s Identity.