monads-tf- Monad classes, using type families

Safe HaskellSafe-Inferred



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