{-# LANGUAGE DeriveGeneric #-}{-# LANGUAGE GeneralizedNewtypeDeriving #-}{-# LANGUAGE NoImplicitPrelude #-}{-# LANGUAGE Trustworthy #-}------------------------------------------------------------------------------- |-- Module : Data.Functor.Identity-- 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---- 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-----------------------------------------------------------------------------moduleData.Functor.Identity(Identity (..),)whereimportControl.Monad.Fix importData.Bits (Bits ,FiniteBits )importData.Coerce importData.Foldable importData.Functor.Utils ((#.) )importForeign.Storable (Storable )importGHC.Ix (Ix )importGHC.Base (Applicative (..),Eq (..),Functor (..),Monad (..),Semigroup ,Monoid ,Ord (..),($) ,(.) )importGHC.Enum (Bounded ,Enum )importGHC.Float (Floating ,RealFloat )importGHC.Generics (Generic ,Generic1 )importGHC.Num (Num )importGHC.Read (Read (..),lex ,readParen )importGHC.Real (Fractional ,Integral ,Real ,RealFrac )importGHC.Show (Show (..),showParen ,showString )importGHC.Types (Bool (..))-- | Identity functor and monad. (a non-strict monad)---- @since 4.8.0.0newtypeIdentity a =Identity {forall a. Identity a -> a runIdentity ::a }deriving(Identity a Int -> Identity a Identity a -> Bool Identity a -> Int Identity a -> Maybe Int Identity a -> Identity a Identity a -> Int -> Bool Identity a -> Int -> Identity a Identity a -> Identity a -> Identity a forall a. Eq a -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> (a -> Int -> a) -> (a -> Int -> a) -> a -> (Int -> a) -> (a -> Int -> a) -> (a -> Int -> a) -> (a -> Int -> a) -> (a -> Int -> Bool) -> (a -> Maybe Int) -> (a -> Int) -> (a -> Bool) -> (a -> Int -> a) -> (a -> Int -> a) -> (a -> Int -> a) -> (a -> Int -> a) -> (a -> Int -> a) -> (a -> Int -> a) -> (a -> Int) -> Bits a forall {a}. Bits a => Eq (Identity a) forall a. Bits a => Identity a forall a. Bits a => Int -> Identity a forall a. Bits a => Identity a -> Bool forall a. Bits a => Identity a -> Int forall a. Bits a => Identity a -> Maybe Int forall a. Bits a => Identity a -> Identity a forall a. Bits a => Identity a -> Int -> Bool forall a. Bits a => Identity a -> Int -> Identity a forall a. Bits a => Identity a -> Identity a -> Identity a popCount :: Identity a -> Int $cpopCount :: forall a. Bits a => Identity a -> Int rotateR :: Identity a -> Int -> Identity a $crotateR :: forall a. Bits a => Identity a -> Int -> Identity a rotateL :: Identity a -> Int -> Identity a $crotateL :: forall a. Bits a => Identity a -> Int -> Identity a unsafeShiftR :: Identity a -> Int -> Identity a $cunsafeShiftR :: forall a. Bits a => Identity a -> Int -> Identity a shiftR :: Identity a -> Int -> Identity a $cshiftR :: forall a. Bits a => Identity a -> Int -> Identity a unsafeShiftL :: Identity a -> Int -> Identity a $cunsafeShiftL :: forall a. Bits a => Identity a -> Int -> Identity a shiftL :: Identity a -> Int -> Identity a $cshiftL :: forall a. Bits a => Identity a -> Int -> Identity a isSigned :: Identity a -> Bool $cisSigned :: forall a. Bits a => Identity a -> Bool bitSize :: Identity a -> Int $cbitSize :: forall a. Bits a => Identity a -> Int bitSizeMaybe :: Identity a -> Maybe Int $cbitSizeMaybe :: forall a. Bits a => Identity a -> Maybe Int testBit :: Identity a -> Int -> Bool $ctestBit :: forall a. Bits a => Identity a -> Int -> Bool complementBit :: Identity a -> Int -> Identity a $ccomplementBit :: forall a. Bits a => Identity a -> Int -> Identity a clearBit :: Identity a -> Int -> Identity a $cclearBit :: forall a. Bits a => Identity a -> Int -> Identity a setBit :: Identity a -> Int -> Identity a $csetBit :: forall a. Bits a => Identity a -> Int -> Identity a bit :: Int -> Identity a $cbit :: forall a. Bits a => Int -> Identity a zeroBits :: Identity a $czeroBits :: forall a. Bits a => Identity a rotate :: Identity a -> Int -> Identity a $crotate :: forall a. Bits a => Identity a -> Int -> Identity a shift :: Identity a -> Int -> Identity a $cshift :: forall a. Bits a => Identity a -> Int -> Identity a complement :: Identity a -> Identity a $ccomplement :: forall a. Bits a => Identity a -> Identity a xor :: Identity a -> Identity a -> Identity a $cxor :: forall a. Bits a => Identity a -> Identity a -> Identity a .|. :: Identity a -> Identity a -> Identity a $c.|. :: forall a. Bits a => Identity a -> Identity a -> Identity a .&. :: Identity a -> Identity a -> Identity a $c.&. :: forall a. Bits a => Identity a -> Identity a -> Identity a Bits -- ^ @since 4.9.0.0,Identity a forall a. a -> a -> Bounded a forall a. Bounded a => Identity a maxBound :: Identity a $cmaxBound :: forall a. Bounded a => Identity a minBound :: Identity a $cminBound :: forall a. Bounded a => Identity a Bounded -- ^ @since 4.9.0.0,Int -> Identity a Identity a -> Int Identity a -> [Identity a] Identity a -> Identity a Identity a -> Identity a -> [Identity a] Identity a -> Identity a -> Identity a -> [Identity a] forall a. Enum a => Int -> Identity a forall a. Enum a => Identity a -> Int forall a. Enum a => Identity a -> [Identity a] forall a. Enum a => Identity a -> Identity a forall a. Enum a => Identity a -> Identity a -> [Identity a] forall a. Enum a => Identity a -> Identity a -> Identity a -> [Identity a] forall a. (a -> a) -> (a -> a) -> (Int -> a) -> (a -> Int) -> (a -> [a]) -> (a -> a -> [a]) -> (a -> a -> [a]) -> (a -> a -> a -> [a]) -> Enum a enumFromThenTo :: Identity a -> Identity a -> Identity a -> [Identity a] $cenumFromThenTo :: forall a. Enum a => Identity a -> Identity a -> Identity a -> [Identity a] enumFromTo :: Identity a -> Identity a -> [Identity a] $cenumFromTo :: forall a. Enum a => Identity a -> Identity a -> [Identity a] enumFromThen :: Identity a -> Identity a -> [Identity a] $cenumFromThen :: forall a. Enum a => Identity a -> Identity a -> [Identity a] enumFrom :: Identity a -> [Identity a] $cenumFrom :: forall a. Enum a => Identity a -> [Identity a] fromEnum :: Identity a -> Int $cfromEnum :: forall a. Enum a => Identity a -> Int toEnum :: Int -> Identity a $ctoEnum :: forall a. Enum a => Int -> Identity a pred :: Identity a -> Identity a $cpred :: forall a. Enum a => Identity a -> Identity a succ :: Identity a -> Identity a $csucc :: forall a. Enum a => Identity a -> Identity a Enum -- ^ @since 4.9.0.0,Identity a -> Identity a -> Bool forall a. Eq a => Identity a -> Identity a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Identity a -> Identity a -> Bool $c/= :: forall a. Eq a => Identity a -> Identity a -> Bool == :: Identity a -> Identity a -> Bool $c== :: forall a. Eq a => Identity a -> Identity a -> Bool Eq -- ^ @since 4.8.0.0,Identity a -> Int forall b. Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b forall {a}. FiniteBits a => Bits (Identity a) forall a. FiniteBits a => Identity a -> Int countTrailingZeros :: Identity a -> Int $ccountTrailingZeros :: forall a. FiniteBits a => Identity a -> Int countLeadingZeros :: Identity a -> Int $ccountLeadingZeros :: forall a. FiniteBits a => Identity a -> Int finiteBitSize :: Identity a -> Int $cfiniteBitSize :: forall a. FiniteBits a => Identity a -> Int FiniteBits -- ^ @since 4.9.0.0,Identity a Identity a -> Identity a Identity a -> Identity a -> Identity a forall {a}. Floating a => Fractional (Identity a) forall a. Floating a => Identity a forall a. Floating a => Identity a -> Identity a forall a. Floating a => Identity a -> Identity a -> Identity a forall a. Fractional a -> a -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> Floating a log1mexp :: Identity a -> Identity a $clog1mexp :: forall a. Floating a => Identity a -> Identity a log1pexp :: Identity a -> Identity a $clog1pexp :: forall a. Floating a => Identity a -> Identity a expm1 :: Identity a -> Identity a $cexpm1 :: forall a. Floating a => Identity a -> Identity a log1p :: Identity a -> Identity a $clog1p :: forall a. Floating a => Identity a -> Identity a atanh :: Identity a -> Identity a $catanh :: forall a. Floating a => Identity a -> Identity a acosh :: Identity a -> Identity a $cacosh :: forall a. Floating a => Identity a -> Identity a asinh :: Identity a -> Identity a $casinh :: forall a. Floating a => Identity a -> Identity a tanh :: Identity a -> Identity a $ctanh :: forall a. Floating a => Identity a -> Identity a cosh :: Identity a -> Identity a $ccosh :: forall a. Floating a => Identity a -> Identity a sinh :: Identity a -> Identity a $csinh :: forall a. Floating a => Identity a -> Identity a atan :: Identity a -> Identity a $catan :: forall a. Floating a => Identity a -> Identity a acos :: Identity a -> Identity a $cacos :: forall a. Floating a => Identity a -> Identity a asin :: Identity a -> Identity a $casin :: forall a. Floating a => Identity a -> Identity a tan :: Identity a -> Identity a $ctan :: forall a. Floating a => Identity a -> Identity a cos :: Identity a -> Identity a $ccos :: forall a. Floating a => Identity a -> Identity a sin :: Identity a -> Identity a $csin :: forall a. Floating a => Identity a -> Identity a logBase :: Identity a -> Identity a -> Identity a $clogBase :: forall a. Floating a => Identity a -> Identity a -> Identity a ** :: Identity a -> Identity a -> Identity a $c** :: forall a. Floating a => Identity a -> Identity a -> Identity a sqrt :: Identity a -> Identity a $csqrt :: forall a. Floating a => Identity a -> Identity a log :: Identity a -> Identity a $clog :: forall a. Floating a => Identity a -> Identity a exp :: Identity a -> Identity a $cexp :: forall a. Floating a => Identity a -> Identity a pi :: Identity a $cpi :: forall a. Floating a => Identity a Floating -- ^ @since 4.9.0.0,Rational -> Identity a Identity a -> Identity a Identity a -> Identity a -> Identity a forall {a}. Fractional a => Num (Identity a) forall a. Fractional a => Rational -> Identity a forall a. Fractional a => Identity a -> Identity a forall a. Fractional a => Identity a -> Identity a -> Identity a forall a. Num a -> (a -> a -> a) -> (a -> a) -> (Rational -> a) -> Fractional a fromRational :: Rational -> Identity a $cfromRational :: forall a. Fractional a => Rational -> Identity a recip :: Identity a -> Identity a $crecip :: forall a. Fractional a => Identity a -> Identity a / :: Identity a -> Identity a -> Identity a $c/ :: forall a. Fractional a => Identity a -> Identity a -> Identity a Fractional -- ^ @since 4.9.0.0,forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Identity a) x -> Identity a forall a x. Identity a -> Rep (Identity a) x $cto :: forall a x. Rep (Identity a) x -> Identity a $cfrom :: forall a x. Identity a -> Rep (Identity a) x Generic -- ^ @since 4.8.0.0,forall a. Rep1 Identity a -> Identity a forall a. Identity a -> Rep1 Identity a forall k (f :: k -> *). (forall (a :: k). f a -> Rep1 f a) -> (forall (a :: k). Rep1 f a -> f a) -> Generic1 f $cto1 :: forall a. Rep1 Identity a -> Identity a $cfrom1 :: forall a. Identity a -> Rep1 Identity a Generic1 -- ^ @since 4.8.0.0,Identity a -> Integer Identity a -> Identity a -> (Identity a, Identity a) Identity a -> Identity a -> Identity a forall {a}. Integral a => Enum (Identity a) forall {a}. Integral a => Real (Identity a) forall a. Integral a => Identity a -> Integer forall a. Integral a => Identity a -> Identity a -> (Identity a, Identity a) forall a. Integral a => Identity a -> Identity a -> Identity a forall a. Real a -> Enum a -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> (a, a)) -> (a -> a -> (a, a)) -> (a -> Integer) -> Integral a toInteger :: Identity a -> Integer $ctoInteger :: forall a. Integral a => Identity a -> Integer divMod :: Identity a -> Identity a -> (Identity a, Identity a) $cdivMod :: forall a. Integral a => Identity a -> Identity a -> (Identity a, Identity a) quotRem :: Identity a -> Identity a -> (Identity a, Identity a) $cquotRem :: forall a. Integral a => Identity a -> Identity a -> (Identity a, Identity a) mod :: Identity a -> Identity a -> Identity a $cmod :: forall a. Integral a => Identity a -> Identity a -> Identity a div :: Identity a -> Identity a -> Identity a $cdiv :: forall a. Integral a => Identity a -> Identity a -> Identity a rem :: Identity a -> Identity a -> Identity a $crem :: forall a. Integral a => Identity a -> Identity a -> Identity a quot :: Identity a -> Identity a -> Identity a $cquot :: forall a. Integral a => Identity a -> Identity a -> Identity a Integral -- ^ @since 4.9.0.0,(Identity a, Identity a) -> Int (Identity a, Identity a) -> [Identity a] (Identity a, Identity a) -> Identity a -> Bool (Identity a, Identity a) -> Identity a -> Int forall a. Ord a -> ((a, a) -> [a]) -> ((a, a) -> a -> Int) -> ((a, a) -> a -> Int) -> ((a, a) -> a -> Bool) -> ((a, a) -> Int) -> ((a, a) -> Int) -> Ix a forall {a}. Ix a => Ord (Identity a) forall a. Ix a => (Identity a, Identity a) -> Int forall a. Ix a => (Identity a, Identity a) -> [Identity a] forall a. Ix a => (Identity a, Identity a) -> Identity a -> Bool forall a. Ix a => (Identity a, Identity a) -> Identity a -> Int unsafeRangeSize :: (Identity a, Identity a) -> Int $cunsafeRangeSize :: forall a. Ix a => (Identity a, Identity a) -> Int rangeSize :: (Identity a, Identity a) -> Int $crangeSize :: forall a. Ix a => (Identity a, Identity a) -> Int inRange :: (Identity a, Identity a) -> Identity a -> Bool $cinRange :: forall a. Ix a => (Identity a, Identity a) -> Identity a -> Bool unsafeIndex :: (Identity a, Identity a) -> Identity a -> Int $cunsafeIndex :: forall a. Ix a => (Identity a, Identity a) -> Identity a -> Int index :: (Identity a, Identity a) -> Identity a -> Int $cindex :: forall a. Ix a => (Identity a, Identity a) -> Identity a -> Int range :: (Identity a, Identity a) -> [Identity a] $crange :: forall a. Ix a => (Identity a, Identity a) -> [Identity a] Ix -- ^ @since 4.9.0.0,NonEmpty (Identity a) -> Identity a Identity a -> Identity a -> Identity a forall b. Integral b => b -> Identity a -> Identity a forall a. Semigroup a => NonEmpty (Identity a) -> Identity a forall a. Semigroup a => Identity a -> Identity a -> Identity a forall a b. (Semigroup a, Integral b) => b -> Identity a -> Identity a forall a. (a -> a -> a) -> (NonEmpty a -> a) -> (forall b. Integral b => b -> a -> a) -> Semigroup a stimes :: forall b. Integral b => b -> Identity a -> Identity a $cstimes :: forall a b. (Semigroup a, Integral b) => b -> Identity a -> Identity a sconcat :: NonEmpty (Identity a) -> Identity a $csconcat :: forall a. Semigroup a => NonEmpty (Identity a) -> Identity a <> :: Identity a -> Identity a -> Identity a $c<> :: forall a. Semigroup a => Identity a -> Identity a -> Identity a Semigroup -- ^ @since 4.9.0.0,Identity a [Identity a] -> Identity a Identity a -> Identity a -> Identity a forall a. Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a forall {a}. Monoid a => Semigroup (Identity a) forall a. Monoid a => Identity a forall a. Monoid a => [Identity a] -> Identity a forall a. Monoid a => Identity a -> Identity a -> Identity a mconcat :: [Identity a] -> Identity a $cmconcat :: forall a. Monoid a => [Identity a] -> Identity a mappend :: Identity a -> Identity a -> Identity a $cmappend :: forall a. Monoid a => Identity a -> Identity a -> Identity a mempty :: Identity a $cmempty :: forall a. Monoid a => Identity a Monoid -- ^ @since 4.9.0.0,Integer -> Identity a Identity a -> Identity a Identity a -> Identity a -> Identity a forall a. Num a => Integer -> Identity a forall a. Num a => Identity a -> Identity a forall a. Num a => Identity a -> Identity a -> Identity a forall a. (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (Integer -> a) -> Num a fromInteger :: Integer -> Identity a $cfromInteger :: forall a. Num a => Integer -> Identity a signum :: Identity a -> Identity a $csignum :: forall a. Num a => Identity a -> Identity a abs :: Identity a -> Identity a $cabs :: forall a. Num a => Identity a -> Identity a negate :: Identity a -> Identity a $cnegate :: forall a. Num a => Identity a -> Identity a * :: Identity a -> Identity a -> Identity a $c* :: forall a. Num a => Identity a -> Identity a -> Identity a - :: Identity a -> Identity a -> Identity a $c- :: forall a. Num a => Identity a -> Identity a -> Identity a + :: Identity a -> Identity a -> Identity a $c+ :: forall a. Num a => Identity a -> Identity a -> Identity a Num -- ^ @since 4.9.0.0,Identity a -> Identity a -> Bool Identity a -> Identity a -> Ordering Identity a -> Identity a -> Identity a forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a forall {a}. Ord a => Eq (Identity a) forall a. Ord a => Identity a -> Identity a -> Bool forall a. Ord a => Identity a -> Identity a -> Ordering forall a. Ord a => Identity a -> Identity a -> Identity a min :: Identity a -> Identity a -> Identity a $cmin :: forall a. Ord a => Identity a -> Identity a -> Identity a max :: Identity a -> Identity a -> Identity a $cmax :: forall a. Ord a => Identity a -> Identity a -> Identity a >= :: Identity a -> Identity a -> Bool $c>= :: forall a. Ord a => Identity a -> Identity a -> Bool > :: Identity a -> Identity a -> Bool $c> :: forall a. Ord a => Identity a -> Identity a -> Bool <= :: Identity a -> Identity a -> Bool $c<= :: forall a. Ord a => Identity a -> Identity a -> Bool < :: Identity a -> Identity a -> Bool $c< :: forall a. Ord a => Identity a -> Identity a -> Bool compare :: Identity a -> Identity a -> Ordering $ccompare :: forall a. Ord a => Identity a -> Identity a -> Ordering Ord -- ^ @since 4.8.0.0,Identity a -> Rational forall a. Num a -> Ord a -> (a -> Rational) -> Real a forall {a}. Real a => Num (Identity a) forall {a}. Real a => Ord (Identity a) forall a. Real a => Identity a -> Rational toRational :: Identity a -> Rational $ctoRational :: forall a. Real a => Identity a -> Rational Real -- ^ @since 4.9.0.0,forall b. Integral b => Identity a -> b forall b. Integral b => Identity a -> (b, Identity a) forall a. Real a -> Fractional a -> (forall b. Integral b => a -> (b, a)) -> (forall b. Integral b => a -> b) -> (forall b. Integral b => a -> b) -> (forall b. Integral b => a -> b) -> (forall b. Integral b => a -> b) -> RealFrac a forall {a}. RealFrac a => Fractional (Identity a) forall {a}. RealFrac a => Real (Identity a) forall a b. (RealFrac a, Integral b) => Identity a -> b forall a b. (RealFrac a, Integral b) => Identity a -> (b, Identity a) floor :: forall b. Integral b => Identity a -> b $cfloor :: forall a b. (RealFrac a, Integral b) => Identity a -> b ceiling :: forall b. Integral b => Identity a -> b $cceiling :: forall a b. (RealFrac a, Integral b) => Identity a -> b round :: forall b. Integral b => Identity a -> b $cround :: forall a b. (RealFrac a, Integral b) => Identity a -> b truncate :: forall b. Integral b => Identity a -> b $ctruncate :: forall a b. (RealFrac a, Integral b) => Identity a -> b properFraction :: forall b. Integral b => Identity a -> (b, Identity a) $cproperFraction :: forall a b. (RealFrac a, Integral b) => Identity a -> (b, Identity a) RealFrac -- ^ @since 4.9.0.0,Int -> Identity a -> Identity a Integer -> Int -> Identity a Identity a -> Bool Identity a -> Int Identity a -> Integer Identity a -> (Int, Int) Identity a -> (Integer, Int) Identity a -> Identity a Identity a -> Identity a -> Identity a forall {a}. RealFloat a => Floating (Identity a) forall {a}. RealFloat a => RealFrac (Identity a) forall a. RealFloat a => Int -> Identity a -> Identity a forall a. RealFloat a => Integer -> Int -> Identity a forall a. RealFloat a => Identity a -> Bool forall a. RealFloat a => Identity a -> Int forall a. RealFloat a => Identity a -> Integer forall a. RealFloat a => Identity a -> (Int, Int) forall a. RealFloat a => Identity a -> (Integer, Int) forall a. RealFloat a => Identity a -> Identity a forall a. RealFloat a => Identity a -> Identity a -> Identity a forall a. RealFrac a -> Floating a -> (a -> Integer) -> (a -> Int) -> (a -> (Int, Int)) -> (a -> (Integer, Int)) -> (Integer -> Int -> a) -> (a -> Int) -> (a -> a) -> (Int -> a -> a) -> (a -> Bool) -> (a -> Bool) -> (a -> Bool) -> (a -> Bool) -> (a -> Bool) -> (a -> a -> a) -> RealFloat a atan2 :: Identity a -> Identity a -> Identity a $catan2 :: forall a. RealFloat a => Identity a -> Identity a -> Identity a isIEEE :: Identity a -> Bool $cisIEEE :: forall a. RealFloat a => Identity a -> Bool isNegativeZero :: Identity a -> Bool $cisNegativeZero :: forall a. RealFloat a => Identity a -> Bool isDenormalized :: Identity a -> Bool $cisDenormalized :: forall a. RealFloat a => Identity a -> Bool isInfinite :: Identity a -> Bool $cisInfinite :: forall a. RealFloat a => Identity a -> Bool isNaN :: Identity a -> Bool $cisNaN :: forall a. RealFloat a => Identity a -> Bool scaleFloat :: Int -> Identity a -> Identity a $cscaleFloat :: forall a. RealFloat a => Int -> Identity a -> Identity a significand :: Identity a -> Identity a $csignificand :: forall a. RealFloat a => Identity a -> Identity a exponent :: Identity a -> Int $cexponent :: forall a. RealFloat a => Identity a -> Int encodeFloat :: Integer -> Int -> Identity a $cencodeFloat :: forall a. RealFloat a => Integer -> Int -> Identity a decodeFloat :: Identity a -> (Integer, Int) $cdecodeFloat :: forall a. RealFloat a => Identity a -> (Integer, Int) floatRange :: Identity a -> (Int, Int) $cfloatRange :: forall a. RealFloat a => Identity a -> (Int, Int) floatDigits :: Identity a -> Int $cfloatDigits :: forall a. RealFloat a => Identity a -> Int floatRadix :: Identity a -> Integer $cfloatRadix :: forall a. RealFloat a => Identity a -> Integer RealFloat -- ^ @since 4.9.0.0,Ptr (Identity a) -> IO (Identity a) Ptr (Identity a) -> Int -> IO (Identity a) Ptr (Identity a) -> Int -> Identity a -> IO () Ptr (Identity a) -> Identity a -> IO () Identity a -> Int forall b. Ptr b -> Int -> IO (Identity a) forall b. Ptr b -> Int -> Identity a -> IO () forall a. Storable a => Ptr (Identity a) -> IO (Identity a) forall a. Storable a => Ptr (Identity a) -> Int -> IO (Identity a) forall a. Storable a => Ptr (Identity a) -> Int -> Identity a -> IO () forall a. Storable a => Ptr (Identity a) -> Identity a -> IO () forall a. Storable a => Identity a -> Int forall a b. Storable a => Ptr b -> Int -> IO (Identity a) forall a b. Storable a => Ptr b -> Int -> Identity a -> IO () forall a. (a -> Int) -> (a -> Int) -> (Ptr a -> Int -> IO a) -> (Ptr a -> Int -> a -> IO ()) -> (forall b. Ptr b -> Int -> IO a) -> (forall b. Ptr b -> Int -> a -> IO ()) -> (Ptr a -> IO a) -> (Ptr a -> a -> IO ()) -> Storable a poke :: Ptr (Identity a) -> Identity a -> IO () $cpoke :: forall a. Storable a => Ptr (Identity a) -> Identity a -> IO () peek :: Ptr (Identity a) -> IO (Identity a) $cpeek :: forall a. Storable a => Ptr (Identity a) -> IO (Identity a) pokeByteOff :: forall b. Ptr b -> Int -> Identity a -> IO () $cpokeByteOff :: forall a b. Storable a => Ptr b -> Int -> Identity a -> IO () peekByteOff :: forall b. Ptr b -> Int -> IO (Identity a) $cpeekByteOff :: forall a b. Storable a => Ptr b -> Int -> IO (Identity a) pokeElemOff :: Ptr (Identity a) -> Int -> Identity a -> IO () $cpokeElemOff :: forall a. Storable a => Ptr (Identity a) -> Int -> Identity a -> IO () peekElemOff :: Ptr (Identity a) -> Int -> IO (Identity a) $cpeekElemOff :: forall a. Storable a => Ptr (Identity a) -> Int -> IO (Identity a) alignment :: Identity a -> Int $calignment :: forall a. Storable a => Identity a -> Int sizeOf :: Identity a -> Int $csizeOf :: forall a. Storable a => Identity a -> Int Storable -- ^ @since 4.9.0.0)-- | This instance would be equivalent to the derived instances of the-- 'Identity' newtype if the 'runIdentity' field were removed---- @since 4.8.0.0instance(Read a )=>Read (Identity a )wherereadsPrec :: Int -> ReadS (Identity a) readsPrec Int d =forall a. Bool -> ReadS a -> ReadS a readParen (Int d forall a. Ord a => a -> a -> Bool > Int 10)forall a b. (a -> b) -> a -> b $ \String r ->[(forall a. a -> Identity a Identity a x ,String t )|(String "Identity",String s )<-ReadS String lex String r ,(a x ,String t )<-forall a. Read a => Int -> ReadS a readsPrec Int 11String s ]-- | This instance would be equivalent to the derived instances of the-- 'Identity' newtype if the 'runIdentity' field were removed---- @since 4.8.0.0instance(Show a )=>Show (Identity a )whereshowsPrec :: Int -> Identity a -> ShowS showsPrec Int d (Identity a x )=Bool -> ShowS -> ShowS showParen (Int d forall a. Ord a => a -> a -> Bool > Int 10)forall a b. (a -> b) -> a -> b $ String -> ShowS showString String "Identity "forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. Show a => Int -> a -> ShowS showsPrec Int 11a x -- ----------------------------------------------------------------------------- Identity instances for Functor and Monad-- | @since 4.8.0.0instanceFoldable Identity wherefoldMap :: forall m a. Monoid m => (a -> m) -> Identity a -> m foldMap =coerce :: forall a b. Coercible a b => a -> b coerce elem :: forall a. Eq a => a -> Identity a -> Bool elem =(forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. Identity a -> a runIdentity )forall b c a. Coercible b c => (b -> c) -> (a -> b) -> a -> c #. forall a. Eq a => a -> a -> Bool (==) foldl :: forall b a. (b -> a -> b) -> b -> Identity a -> b foldl =coerce :: forall a b. Coercible a b => a -> b coerce foldl' :: forall b a. (b -> a -> b) -> b -> Identity a -> b foldl' =coerce :: forall a b. Coercible a b => a -> b coerce foldl1 :: forall a. (a -> a -> a) -> Identity a -> a foldl1 a -> a -> a _=forall a. Identity a -> a runIdentity foldr :: forall a b. (a -> b -> b) -> b -> Identity a -> b foldr a -> b -> b f b z (Identity a x )=a -> b -> b f a x b z foldr' :: forall a b. (a -> b -> b) -> b -> Identity a -> b foldr' =forall (t :: * -> *) a b. Foldable t => (a -> b -> b) -> b -> t a -> b foldr foldr1 :: forall a. (a -> a -> a) -> Identity a -> a foldr1 a -> a -> a _=forall a. Identity a -> a runIdentity length :: forall a. Identity a -> Int length Identity a _=Int 1maximum :: forall a. Ord a => Identity a -> a maximum =forall a. Identity a -> a runIdentity minimum :: forall a. Ord a => Identity a -> a minimum =forall a. Identity a -> a runIdentity null :: forall a. Identity a -> Bool null Identity a _=Bool False product :: forall a. Num a => Identity a -> a product =forall a. Identity a -> a runIdentity sum :: forall a. Num a => Identity a -> a sum =forall a. Identity a -> a runIdentity toList :: forall a. Identity a -> [a] toList (Identity a x )=[a x ]-- | @since 4.8.0.0instanceFunctor Identity wherefmap :: forall a b. (a -> b) -> Identity a -> Identity b fmap =coerce :: forall a b. Coercible a b => a -> b coerce -- | @since 4.8.0.0instanceApplicative Identity wherepure :: forall a. a -> Identity a pure =forall a. a -> Identity a Identity <*> :: forall a b. Identity (a -> b) -> Identity a -> Identity b (<*>) =coerce :: forall a b. Coercible a b => a -> b coerce liftA2 :: forall a b c. (a -> b -> c) -> Identity a -> Identity b -> Identity c liftA2 =coerce :: forall a b. Coercible a b => a -> b coerce -- | @since 4.8.0.0instanceMonad Identity whereIdentity a m >>= :: forall a b. Identity a -> (a -> Identity b) -> Identity b >>= a -> Identity b k =a -> Identity b k (forall a. Identity a -> a runIdentity Identity a m )-- | @since 4.8.0.0instanceMonadFix Identity wheremfix :: forall a. (a -> Identity a) -> Identity a mfix a -> Identity a f =forall a. a -> Identity a Identity (forall a. (a -> a) -> a fix (forall a. Identity a -> a runIdentity forall b c a. (b -> c) -> (a -> b) -> a -> c . a -> Identity a f ))