| Copyright | (c) Andy Gill 2001 (c) Oregon Graduate Institute of Science and Technology 2001 (c) Jeff Newbern 2003-2006 (c) Andriy Palamarchuk 2006 |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | ross@soi.city.ac.uk |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | GHC2021 |
Control.Monad.Identity
Description
- Computation type:
- Simple function application.
- Binding strategy:
- The bound function is applied to the input value.
Identityx >>= f ==Identity(f x) - Useful for:
- Monads can be derived from monad transformers applied to the
Identitymonad. - Zero and plus:
- None.
- Example type:
Identitya
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
Constructors
| Identity | |
Fields
| |
Instances
| MonadZip Identity | |||||
| Foldable1 Identity | |||||
Defined in Data.Foldable1 Methods fold1 :: Semigroup m => Identity m -> m foldMap1 :: Semigroup m => (a -> m) -> Identity a -> m foldMap1' :: Semigroup m => (a -> m) -> Identity a -> m toNonEmpty :: Identity a -> NonEmpty a maximum :: Ord a => Identity a -> a minimum :: Ord a => Identity a -> a foldrMap1 :: (a -> b) -> (a -> b -> b) -> Identity a -> b foldlMap1' :: (a -> b) -> (b -> a -> b) -> Identity a -> b foldlMap1 :: (a -> b) -> (b -> a -> b) -> Identity a -> b foldrMap1' :: (a -> b) -> (a -> b -> b) -> Identity a -> b | |||||
| Eq1 Identity | |||||
Defined in Data.Functor.Classes | |||||
| Ord1 Identity | |||||
Defined in Data.Functor.Classes Methods liftCompare :: (a -> b -> Ordering) -> Identity a -> Identity b -> Ordering | |||||
| Read1 Identity | |||||
Defined in Data.Functor.Classes Methods liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Identity a) liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Identity a] liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Identity a) liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Identity a] | |||||
| Show1 Identity | |||||
Defined in Data.Functor.Classes Methods liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Identity a -> ShowS liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Identity a] -> ShowS | |||||
| Applicative Identity | |||||
| Functor Identity | |||||
| Monad Identity | |||||
| MonadFix Identity | |||||
Defined in GHC.Internal.Data.Functor.Identity | |||||
| Foldable Identity | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods fold :: Monoid m => Identity m -> m foldMap :: Monoid m => (a -> m) -> Identity a -> m foldMap' :: Monoid m => (a -> m) -> Identity a -> m foldr :: (a -> b -> b) -> b -> Identity a -> b foldr' :: (a -> b -> b) -> b -> Identity a -> b foldl :: (b -> a -> b) -> b -> Identity a -> b foldl' :: (b -> a -> b) -> b -> Identity a -> b foldr1 :: (a -> a -> a) -> Identity a -> a foldl1 :: (a -> a -> a) -> Identity a -> a elem :: Eq a => a -> Identity a -> Bool maximum :: Ord a => Identity a -> a minimum :: Ord a => Identity a -> a | |||||
| Traversable Identity | |||||
Defined in GHC.Internal.Data.Traversable | |||||
| Generic1 Identity | |||||
Defined in GHC.Internal.Data.Functor.Identity Associated Types
| |||||
| Monoid a => Monoid (Identity a) | |||||
| Semigroup a => Semigroup (Identity a) | |||||
| Bits a => Bits (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods (.&.) :: Identity a -> Identity a -> Identity a (.|.) :: Identity a -> Identity a -> Identity a xor :: Identity a -> Identity a -> Identity a complement :: Identity a -> Identity a shift :: Identity a -> Int -> Identity a rotate :: Identity a -> Int -> Identity a setBit :: Identity a -> Int -> Identity a clearBit :: Identity a -> Int -> Identity a complementBit :: Identity a -> Int -> Identity a testBit :: Identity a -> Int -> Bool bitSizeMaybe :: Identity a -> Maybe Int isSigned :: Identity a -> Bool shiftL :: Identity a -> Int -> Identity a unsafeShiftL :: Identity a -> Int -> Identity a shiftR :: Identity a -> Int -> Identity a unsafeShiftR :: Identity a -> Int -> Identity a rotateL :: Identity a -> Int -> Identity a | |||||
| FiniteBits a => FiniteBits (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods finiteBitSize :: Identity a -> Int countLeadingZeros :: Identity a -> Int countTrailingZeros :: Identity a -> Int | |||||
| Bounded a => Bounded (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity | |||||
| Enum a => Enum (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity | |||||
| Floating a => Floating (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods exp :: Identity a -> Identity a log :: Identity a -> Identity a sqrt :: Identity a -> Identity a (**) :: Identity a -> Identity a -> Identity a logBase :: Identity a -> Identity a -> Identity a sin :: Identity a -> Identity a cos :: Identity a -> Identity a tan :: Identity a -> Identity a asin :: Identity a -> Identity a acos :: Identity a -> Identity a atan :: Identity a -> Identity a sinh :: Identity a -> Identity a cosh :: Identity a -> Identity a tanh :: Identity a -> Identity a asinh :: Identity a -> Identity a acosh :: Identity a -> Identity a atanh :: Identity a -> Identity a log1p :: Identity a -> Identity a expm1 :: Identity a -> Identity a | |||||
| RealFloat a => RealFloat (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods floatRadix :: Identity a -> Integer floatDigits :: Identity a -> Int floatRange :: Identity a -> (Int, Int) decodeFloat :: Identity a -> (Integer, Int) encodeFloat :: Integer -> Int -> Identity a significand :: Identity a -> Identity a scaleFloat :: Int -> Identity a -> Identity a isInfinite :: Identity a -> Bool isDenormalized :: Identity a -> Bool isNegativeZero :: Identity a -> Bool | |||||
| Storable a => Storable (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods alignment :: Identity a -> Int peekElemOff :: Ptr (Identity a) -> Int -> IO (Identity a) pokeElemOff :: Ptr (Identity a) -> Int -> Identity a -> IO () peekByteOff :: Ptr b -> Int -> IO (Identity a) pokeByteOff :: Ptr b -> Int -> Identity a -> IO () | |||||
| Generic (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Associated Types
| |||||
| Ix a => Ix (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods range :: (Identity a, Identity a) -> [Identity a] index :: (Identity a, Identity a) -> Identity a -> Int unsafeIndex :: (Identity a, Identity a) -> Identity a -> Int inRange :: (Identity a, Identity a) -> Identity a -> Bool rangeSize :: (Identity a, Identity a) -> Int unsafeRangeSize :: (Identity a, Identity a) -> Int | |||||
| Num a => Num (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity | |||||
| Read a => Read (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity | |||||
| Fractional a => Fractional (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity | |||||
| Integral a => Integral (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods quot :: Identity a -> Identity a -> Identity a rem :: Identity a -> Identity a -> Identity a div :: Identity a -> Identity a -> Identity a mod :: Identity a -> Identity a -> Identity a quotRem :: Identity a -> Identity a -> (Identity a, Identity a) divMod :: Identity a -> Identity a -> (Identity a, Identity a) | |||||
| Real a => Real (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity Methods toRational :: Identity a -> Rational | |||||
| RealFrac a => RealFrac (Identity a) | |||||
| Show a => Show (Identity a) | |||||
| Eq a => Eq (Identity a) | |||||
| Ord a => Ord (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity | |||||
| type Rep1 Identity | |||||
Defined in GHC.Internal.Data.Functor.Identity type Rep1 Identity = D1 ('MetaData "Identity" "GHC.Internal.Data.Functor.Identity" "ghc-internal" 'True) (C1 ('MetaCons "Identity" 'PrefixI 'True) (S1 ('MetaSel ('Just "runIdentity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
| type Rep (Identity a) | |||||
Defined in GHC.Internal.Data.Functor.Identity type Rep (Identity a) = D1 ('MetaData "Identity" "GHC.Internal.Data.Functor.Identity" "ghc-internal" 'True) (C1 ('MetaCons "Identity" 'PrefixI 'True) (S1 ('MetaSel ('Just "runIdentity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) | |||||