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.