Control.Monad.Identity

mtl-2.0.1.0: Monad classes, using functional dependencies

Portability | portable
Stability | experimental
Maintainer | libraries@haskell.org

Control.Monad.Identity

Description

Computation type:
  Simple function application.
Binding strategy:
  The bound function is applied to the input value. ``Identity` x >>= f == `Identity` (f x)`
Useful for:
  Monads can be derived from monad transformers applied to the `Identity` monad.
Zero and plus:
  None.
Example type:
  ``Identity` a`

The `Identity` monad is a monad that does not embody any computational strategy. It simply applies the bound function to its input without any modification. Computationally, there is no reason to use the `Identity` monad instead of the much simpler act of simply applying functions to their arguments. The purpose of the `Identity` monad is its fundamental role in the theory of monad transformers. Any monad transformer applied to the `Identity` monad yields a non-transformer version of that monad.

# Documentation

module Data.Functor.Identity

module Control.Monad

module Control.Monad.Fix