Data.Functor.Identity

base-4.8.2.0: Basic libraries

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 | Trustworthy
Language | Haskell2010

Data.Functor.Identity

Description

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``.

Since: 4.8.0.0

Synopsis

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

# Documentation

newtype Identity a

Identity functor and monad. (a non-strict monad)

Since: 4.8.0.0

Constructors

Identity |
Fields runIdentity :: a

Instances

Monad Identity |
Functor Identity |
MonadFix Identity |
Applicative Identity |
Foldable Identity |
Traversable Identity |
Generic1 Identity |
MonadZip Identity |
Eq a => Eq (Identity a) |
Data a => Data (Identity a) |
Ord a => Ord (Identity a) |
Read a => Read (Identity a) | This instance would be equivalent to the derived instances of the `Identity` newtype if the `runIdentity` field were removed
Show a => Show (Identity a) | This instance would be equivalent to the derived instances of the `Identity` newtype if the `runIdentity` field were removed
Generic (Identity a) |
type Rep1 Identity |
type Rep (Identity a) |