Copyright | (c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology 2001 |
---|---|

License | BSD-style (see the file LICENSE) |

Maintainer | ross@soi.city.ac.uk |

Stability | experimental |

Portability | portable |

Safe Haskell | Safe-Inferred |

Language | Haskell98 |

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`

- newtype Identity a = Identity {
- runIdentity :: a