{-# 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 : stable-- 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(Eq (Identity a)
Identity a
Eq (Identity a) =>
(Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> Identity a
-> (Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Bool)
-> (Identity a -> Maybe Int)
-> (Identity a -> Int)
-> (Identity a -> Bool)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int -> Identity a)
-> (Identity a -> Int)
-> Bits (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
$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
.|. :: Identity a -> Identity a -> Identity a
$cxor :: forall a. Bits a => Identity a -> Identity a -> Identity a
xor :: Identity a -> Identity a -> Identity a
$ccomplement :: forall a. Bits a => Identity a -> Identity a
complement :: Identity a -> Identity a
$cshift :: forall a. Bits a => Identity a -> Int -> Identity a
shift :: Identity a -> Int -> Identity a
$crotate :: forall a. Bits a => Identity a -> Int -> Identity a
rotate :: Identity a -> Int -> Identity a
$czeroBits :: forall a. Bits a => Identity a
zeroBits :: Identity a
$cbit :: forall a. Bits a => Int -> Identity a
bit :: Int -> Identity a
$csetBit :: forall a. Bits a => Identity a -> Int -> Identity a
setBit :: Identity a -> Int -> Identity a
$cclearBit :: forall a. Bits a => Identity a -> Int -> Identity a
clearBit :: Identity a -> Int -> Identity a
$ccomplementBit :: forall a. Bits a => Identity a -> Int -> Identity a
complementBit :: Identity a -> Int -> Identity a
$ctestBit :: forall a. Bits a => Identity a -> Int -> Bool
testBit :: Identity a -> Int -> Bool
$cbitSizeMaybe :: forall a. Bits a => Identity a -> Maybe Int
bitSizeMaybe :: Identity a -> Maybe Int
$cbitSize :: forall a. Bits a => Identity a -> Int
bitSize :: Identity a -> Int
$cisSigned :: forall a. Bits a => Identity a -> Bool
isSigned :: Identity a -> Bool
$cshiftL :: forall a. Bits a => Identity a -> Int -> Identity a
shiftL :: Identity a -> Int -> Identity a
$cunsafeShiftL :: forall a. Bits a => Identity a -> Int -> Identity a
unsafeShiftL :: Identity a -> Int -> Identity a
$cshiftR :: forall a. Bits a => Identity a -> Int -> Identity a
shiftR :: Identity a -> Int -> Identity a
$cunsafeShiftR :: forall a. Bits a => Identity a -> Int -> Identity a
unsafeShiftR :: Identity a -> Int -> Identity a
$crotateL :: forall a. Bits a => Identity a -> Int -> Identity a
rotateL :: Identity a -> Int -> Identity a
$crotateR :: forall a. Bits a => Identity a -> Int -> Identity a
rotateR :: Identity a -> Int -> Identity a
$cpopCount :: forall a. Bits a => Identity a -> Int
popCount :: Identity a -> Int
Bits -- ^ @since 4.9.0.0,Identity a
Identity a -> Identity a -> Bounded (Identity a)
forall a. a -> a -> Bounded a
forall a. Bounded a => Identity a
$cminBound :: forall a. Bounded a => Identity a
minBound :: Identity a
$cmaxBound :: forall a. Bounded a => Identity a
maxBound :: 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]
(Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (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 -> [Identity a])
-> Enum (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
$csucc :: forall a. Enum a => Identity a -> Identity a
succ :: Identity a -> Identity a
$cpred :: forall a. Enum a => Identity a -> Identity a
pred :: Identity a -> Identity a
$ctoEnum :: forall a. Enum a => Int -> Identity a
toEnum :: Int -> Identity a
$cfromEnum :: forall a. Enum a => Identity a -> Int
fromEnum :: Identity a -> Int
$cenumFrom :: forall a. Enum a => Identity a -> [Identity a]
enumFrom :: Identity a -> [Identity a]
$cenumFromThen :: forall a. Enum a => Identity a -> Identity a -> [Identity a]
enumFromThen :: Identity a -> Identity a -> [Identity a]
$cenumFromTo :: forall a. Enum a => Identity a -> Identity a -> [Identity a]
enumFromTo :: Identity a -> Identity a -> [Identity a]
$cenumFromThenTo :: forall a.
Enum a =>
Identity a -> Identity a -> Identity a -> [Identity a]
enumFromThenTo :: Identity a -> Identity a -> Identity a -> [Identity a]
Enum -- ^ @since 4.9.0.0,Identity a -> Identity a -> Bool
(Identity a -> Identity a -> Bool)
-> (Identity a -> Identity a -> Bool) -> Eq (Identity a)
forall a. Eq a => Identity a -> Identity a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$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
/= :: Identity a -> Identity a -> Bool
Eq -- ^ @since 4.8.0.0,Bits (Identity a)
Bits (Identity a) =>
(Identity a -> Int)
-> (Identity a -> Int)
-> (Identity a -> Int)
-> FiniteBits (Identity a)
Identity a -> Int
forall a. FiniteBits a => Bits (Identity a)
forall a. FiniteBits a => Identity a -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: forall a. FiniteBits a => Identity a -> Int
finiteBitSize :: Identity a -> Int
$ccountLeadingZeros :: forall a. FiniteBits a => Identity a -> Int
countLeadingZeros :: Identity a -> Int
$ccountTrailingZeros :: forall a. FiniteBits a => Identity a -> Int
countTrailingZeros :: Identity a -> Int
FiniteBits -- ^ @since 4.9.0.0,Fractional (Identity a)
Identity a
Fractional (Identity a) =>
Identity a
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> Floating (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
$cpi :: forall a. Floating a => Identity a
pi :: Identity a
$cexp :: forall a. Floating a => Identity a -> Identity a
exp :: Identity a -> Identity a
$clog :: forall a. Floating a => Identity a -> Identity a
log :: Identity a -> Identity a
$csqrt :: forall a. Floating a => Identity a -> Identity a
sqrt :: Identity a -> Identity a
$c** :: forall a. Floating a => Identity a -> Identity a -> Identity a
** :: Identity a -> Identity a -> Identity a
$clogBase :: forall a. Floating a => Identity a -> Identity a -> Identity a
logBase :: Identity a -> Identity a -> Identity a
$csin :: forall a. Floating a => Identity a -> Identity a
sin :: Identity a -> Identity a
$ccos :: forall a. Floating a => Identity a -> Identity a
cos :: Identity a -> Identity a
$ctan :: forall a. Floating a => Identity a -> Identity a
tan :: Identity a -> Identity a
$casin :: forall a. Floating a => Identity a -> Identity a
asin :: Identity a -> Identity a
$cacos :: forall a. Floating a => Identity a -> Identity a
acos :: Identity a -> Identity a
$catan :: forall a. Floating a => Identity a -> Identity a
atan :: Identity a -> Identity a
$csinh :: forall a. Floating a => Identity a -> Identity a
sinh :: Identity a -> Identity a
$ccosh :: forall a. Floating a => Identity a -> Identity a
cosh :: Identity a -> Identity a
$ctanh :: forall a. Floating a => Identity a -> Identity a
tanh :: Identity a -> Identity a
$casinh :: forall a. Floating a => Identity a -> Identity a
asinh :: Identity a -> Identity a
$cacosh :: forall a. Floating a => Identity a -> Identity a
acosh :: Identity a -> Identity a
$catanh :: forall a. Floating a => Identity a -> Identity a
atanh :: Identity a -> Identity a
$clog1p :: forall a. Floating a => Identity a -> Identity a
log1p :: Identity a -> Identity a
$cexpm1 :: forall a. Floating a => Identity a -> Identity a
expm1 :: Identity a -> Identity a
$clog1pexp :: forall a. Floating a => Identity a -> Identity a
log1pexp :: Identity a -> Identity a
$clog1mexp :: forall a. Floating a => Identity a -> Identity a
log1mexp :: Identity a -> Identity a
Floating -- ^ @since 4.9.0.0,Num (Identity a)
Num (Identity a) =>
(Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Rational -> Identity a)
-> Fractional (Identity a)
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
$c/ :: forall a. Fractional a => Identity a -> Identity a -> Identity a
/ :: Identity a -> Identity a -> Identity a
$crecip :: forall a. Fractional a => Identity a -> Identity a
recip :: Identity a -> Identity a
$cfromRational :: forall a. Fractional a => Rational -> Identity a
fromRational :: Rational -> Identity a
Fractional -- ^ @since 4.9.0.0,(forall x. Identity a -> Rep (Identity a) x)
-> (forall x. Rep (Identity a) x -> Identity a)
-> Generic (Identity a)
forall x. Rep (Identity a) x -> Identity a
forall x. Identity a -> Rep (Identity a) x
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
$cfrom :: forall a x. Identity a -> Rep (Identity a) x
from :: forall x. Identity a -> Rep (Identity a) x
$cto :: forall a x. Rep (Identity a) x -> Identity a
to :: forall x. Rep (Identity a) x -> Identity a
Generic -- ^ @since 4.8.0.0,(forall a. Identity a -> Rep1 Identity a)
-> (forall a. Rep1 Identity a -> Identity a) -> Generic1 Identity
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
$cfrom1 :: forall a. Identity a -> Rep1 Identity a
from1 :: forall a. Identity a -> Rep1 Identity a
$cto1 :: forall a. Rep1 Identity a -> Identity a
to1 :: forall a. Rep1 Identity a -> Identity a
Generic1 -- ^ @since 4.8.0.0,Enum (Identity a)
Real (Identity a)
(Real (Identity a), Enum (Identity a)) =>
(Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> (Identity a, Identity a))
-> (Identity a -> Identity a -> (Identity a, Identity a))
-> (Identity a -> Integer)
-> Integral (Identity a)
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
$cquot :: forall a. Integral a => Identity a -> Identity a -> Identity a
quot :: Identity a -> Identity a -> Identity a
$crem :: forall a. Integral a => Identity a -> Identity a -> Identity a
rem :: Identity a -> Identity a -> Identity a
$cdiv :: forall a. Integral a => Identity a -> Identity a -> Identity a
div :: Identity a -> Identity a -> Identity a
$cmod :: forall a. Integral a => Identity a -> Identity a -> Identity a
mod :: Identity a -> Identity a -> Identity a
$cquotRem :: forall a.
Integral a =>
Identity a -> Identity a -> (Identity a, Identity a)
quotRem :: Identity a -> Identity a -> (Identity a, Identity a)
$cdivMod :: forall a.
Integral a =>
Identity a -> Identity a -> (Identity a, Identity a)
divMod :: Identity a -> Identity a -> (Identity a, Identity a)
$ctoInteger :: forall a. Integral a => Identity a -> Integer
toInteger :: Identity a -> Integer
Integral -- ^ @since 4.9.0.0,Ord (Identity a)
Ord (Identity a) =>
((Identity a, Identity a) -> [Identity a])
-> ((Identity a, Identity a) -> Identity a -> Int)
-> ((Identity a, Identity a) -> Identity a -> Int)
-> ((Identity a, Identity a) -> Identity a -> Bool)
-> ((Identity a, Identity a) -> Int)
-> ((Identity a, Identity a) -> Int)
-> Ix (Identity a)
(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
$crange :: forall a. Ix a => (Identity a, Identity a) -> [Identity a]
range :: (Identity a, Identity a) -> [Identity a]
$cindex :: forall a. Ix a => (Identity a, Identity a) -> Identity a -> Int
index :: (Identity a, Identity a) -> Identity a -> Int
$cunsafeIndex :: forall a. Ix a => (Identity a, Identity a) -> Identity a -> Int
unsafeIndex :: (Identity a, Identity a) -> Identity a -> Int
$cinRange :: forall a. Ix a => (Identity a, Identity a) -> Identity a -> Bool
inRange :: (Identity a, Identity a) -> Identity a -> Bool
$crangeSize :: forall a. Ix a => (Identity a, Identity a) -> Int
rangeSize :: (Identity a, Identity a) -> Int
$cunsafeRangeSize :: forall a. Ix a => (Identity a, Identity a) -> Int
unsafeRangeSize :: (Identity a, Identity a) -> Int
Ix -- ^ @since 4.9.0.0,NonEmpty (Identity a) -> Identity a
Identity a -> Identity a -> Identity a
(Identity a -> Identity a -> Identity a)
-> (NonEmpty (Identity a) -> Identity a)
-> (forall b. Integral b => b -> Identity a -> Identity a)
-> Semigroup (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
$c<> :: forall a. Semigroup a => Identity a -> Identity a -> Identity a
<> :: Identity a -> Identity a -> Identity a
$csconcat :: forall a. Semigroup a => NonEmpty (Identity a) -> Identity a
sconcat :: NonEmpty (Identity a) -> Identity a
$cstimes :: forall a b.
(Semigroup a, Integral b) =>
b -> Identity a -> Identity a
stimes :: forall b. Integral b => b -> Identity a -> Identity a
Semigroup -- ^ @since 4.9.0.0,Semigroup (Identity a)
Identity a
Semigroup (Identity a) =>
Identity a
-> (Identity a -> Identity a -> Identity a)
-> ([Identity a] -> Identity a)
-> Monoid (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
$cmempty :: forall a. Monoid a => Identity a
mempty :: Identity a
$cmappend :: forall a. Monoid a => Identity a -> Identity a -> Identity a
mappend :: Identity a -> Identity a -> Identity a
$cmconcat :: forall a. Monoid a => [Identity a] -> Identity a
mconcat :: [Identity a] -> Identity a
Monoid -- ^ @since 4.9.0.0,Integer -> Identity a
Identity a -> Identity a
Identity a -> Identity a -> Identity a
(Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Identity a -> Identity a)
-> (Integer -> Identity a)
-> Num (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
$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
* :: Identity a -> Identity a -> Identity a
$cnegate :: forall a. Num a => Identity a -> Identity a
negate :: Identity a -> Identity a
$cabs :: forall a. Num a => Identity a -> Identity a
abs :: Identity a -> Identity a
$csignum :: forall a. Num a => Identity a -> Identity a
signum :: Identity a -> Identity a
$cfromInteger :: forall a. Num a => Integer -> Identity a
fromInteger :: Integer -> Identity a
Num -- ^ @since 4.9.0.0,Eq (Identity a)
Eq (Identity a) =>
(Identity a -> Identity a -> Ordering)
-> (Identity a -> Identity a -> Bool)
-> (Identity a -> Identity a -> Bool)
-> (Identity a -> Identity a -> Bool)
-> (Identity a -> Identity a -> Bool)
-> (Identity a -> Identity a -> Identity a)
-> (Identity a -> Identity a -> Identity a)
-> Ord (Identity a)
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
$ccompare :: forall a. Ord a => Identity a -> Identity a -> Ordering
compare :: Identity a -> Identity a -> Ordering
$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
>= :: Identity a -> Identity a -> Bool
$cmax :: forall a. Ord a => Identity a -> Identity a -> Identity a
max :: Identity a -> Identity a -> Identity a
$cmin :: forall a. Ord a => Identity a -> Identity a -> Identity a
min :: Identity a -> Identity a -> Identity a
Ord -- ^ @since 4.8.0.0,Num (Identity a)
Ord (Identity a)
(Num (Identity a), Ord (Identity a)) =>
(Identity a -> Rational) -> Real (Identity a)
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
$ctoRational :: forall a. Real a => Identity a -> Rational
toRational :: Identity a -> Rational
Real -- ^ @since 4.9.0.0,Fractional (Identity a)
Real (Identity a)
(Real (Identity a), Fractional (Identity a)) =>
(forall b. Integral b => Identity a -> (b, Identity a))
-> (forall b. Integral b => Identity a -> b)
-> (forall b. Integral b => Identity a -> b)
-> (forall b. Integral b => Identity a -> b)
-> (forall b. Integral b => Identity a -> b)
-> RealFrac (Identity a)
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)
$cproperFraction :: forall a b.
(RealFrac a, Integral b) =>
Identity a -> (b, Identity a)
properFraction :: forall b. Integral b => Identity a -> (b, Identity a)
$ctruncate :: forall a b. (RealFrac a, Integral b) => Identity a -> b
truncate :: forall b. Integral b => Identity a -> b
$cround :: forall a b. (RealFrac a, Integral b) => Identity a -> b
round :: forall b. Integral b => Identity a -> b
$cceiling :: forall a b. (RealFrac a, Integral b) => Identity a -> b
ceiling :: forall b. Integral b => Identity a -> b
$cfloor :: forall a b. (RealFrac a, Integral b) => Identity a -> b
floor :: forall b. Integral b => Identity a -> b
RealFrac -- ^ @since 4.9.0.0,Floating (Identity a)
RealFrac (Identity a)
(RealFrac (Identity a), Floating (Identity a)) =>
(Identity a -> Integer)
-> (Identity a -> Int)
-> (Identity a -> (Int, Int))
-> (Identity a -> (Integer, Int))
-> (Integer -> Int -> Identity a)
-> (Identity a -> Int)
-> (Identity a -> Identity a)
-> (Int -> Identity a -> Identity a)
-> (Identity a -> Bool)
-> (Identity a -> Bool)
-> (Identity a -> Bool)
-> (Identity a -> Bool)
-> (Identity a -> Bool)
-> (Identity a -> Identity a -> Identity a)
-> RealFloat (Identity a)
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
$cfloatRadix :: forall a. RealFloat a => Identity a -> Integer
floatRadix :: Identity a -> Integer
$cfloatDigits :: forall a. RealFloat a => Identity a -> Int
floatDigits :: Identity a -> Int
$cfloatRange :: forall a. RealFloat a => Identity a -> (Int, Int)
floatRange :: Identity a -> (Int, Int)
$cdecodeFloat :: forall a. RealFloat a => Identity a -> (Integer, Int)
decodeFloat :: Identity a -> (Integer, Int)
$cencodeFloat :: forall a. RealFloat a => Integer -> Int -> Identity a
encodeFloat :: Integer -> Int -> Identity a
$cexponent :: forall a. RealFloat a => Identity a -> Int
exponent :: Identity a -> Int
$csignificand :: forall a. RealFloat a => Identity a -> Identity a
significand :: Identity a -> Identity a
$cscaleFloat :: forall a. RealFloat a => Int -> Identity a -> Identity a
scaleFloat :: Int -> Identity a -> Identity a
$cisNaN :: forall a. RealFloat a => Identity a -> Bool
isNaN :: Identity a -> Bool
$cisInfinite :: forall a. RealFloat a => Identity a -> Bool
isInfinite :: Identity a -> Bool
$cisDenormalized :: forall a. RealFloat a => Identity a -> Bool
isDenormalized :: Identity a -> Bool
$cisNegativeZero :: forall a. RealFloat a => Identity a -> Bool
isNegativeZero :: Identity a -> Bool
$cisIEEE :: forall a. RealFloat a => Identity a -> Bool
isIEEE :: Identity a -> Bool
$catan2 :: forall a. RealFloat a => Identity a -> Identity a -> Identity a
atan2 :: Identity a -> Identity a -> Identity a
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
(Identity a -> Int)
-> (Identity a -> Int)
-> (Ptr (Identity a) -> Int -> IO (Identity a))
-> (Ptr (Identity a) -> Int -> Identity a -> IO ())
-> (forall b. Ptr b -> Int -> IO (Identity a))
-> (forall b. Ptr b -> Int -> Identity a -> IO ())
-> (Ptr (Identity a) -> IO (Identity a))
-> (Ptr (Identity a) -> Identity a -> IO ())
-> Storable (Identity a)
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
$csizeOf :: forall a. Storable a => Identity a -> Int
sizeOf :: Identity a -> Int
$calignment :: forall a. Storable a => Identity a -> Int
alignment :: Identity a -> Int
$cpeekElemOff :: forall a. Storable a => Ptr (Identity a) -> Int -> IO (Identity a)
peekElemOff :: Ptr (Identity a) -> Int -> IO (Identity a)
$cpokeElemOff :: forall a.
Storable a =>
Ptr (Identity a) -> Int -> Identity a -> IO ()
pokeElemOff :: Ptr (Identity a) -> Int -> Identity a -> IO ()
$cpeekByteOff :: forall a b. Storable a => Ptr b -> Int -> IO (Identity a)
peekByteOff :: forall b. Ptr b -> Int -> IO (Identity a)
$cpokeByteOff :: forall a b. Storable a => Ptr b -> Int -> Identity a -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> Identity a -> IO ()
$cpeek :: forall a. Storable a => Ptr (Identity a) -> IO (Identity a)
peek :: Ptr (Identity a) -> IO (Identity a)
$cpoke :: forall a. Storable a => Ptr (Identity a) -> Identity a -> IO ()
poke :: Ptr (Identity a) -> Identity a -> IO ()
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 =Bool -> ReadS (Identity a) -> ReadS (Identity a)
forall a. Bool -> ReadS a -> ReadS a
readParen (Int
d Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
> Int
10)(ReadS (Identity a) -> ReadS (Identity a))
-> ReadS (Identity a) -> ReadS (Identity a)
forall a b. (a -> b) -> a -> b
$ \String
r ->[(a -> Identity a
forall a. a -> Identity a
Identity a
x ,String
t )|(String
"Identity",String
s )<-ReadS String
lex String
r ,(a
x ,String
t )<-Int -> ReadS a
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 Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
> Int
10)(ShowS -> ShowS) -> ShowS -> ShowS
forall a b. (a -> b) -> a -> b
$ String -> ShowS
showString String
"Identity "ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> a -> ShowS
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 =(a -> m) -> Identity a -> m
forall a b. Coercible a b => a -> b
coerce elem :: forall a. Eq a => a -> Identity a -> Bool
elem =((a -> Bool) -> (Identity a -> a) -> Identity a -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Identity a -> a
forall a. Identity a -> a
runIdentity )((a -> Bool) -> Identity a -> Bool)
-> (a -> a -> Bool) -> a -> Identity a -> Bool
forall b c a. Coercible b c => (b -> c) -> (a -> b) -> a -> c
#. a -> a -> Bool
forall a. Eq a => a -> a -> Bool
(==) foldl :: forall b a. (b -> a -> b) -> b -> Identity a -> b
foldl =(b -> a -> b) -> b -> Identity a -> b
forall a b. Coercible a b => a -> b
coerce foldl' :: forall b a. (b -> a -> b) -> b -> Identity a -> b
foldl' =(b -> a -> b) -> b -> Identity a -> b
forall a b. Coercible a b => a -> b
coerce foldl1 :: forall a. (a -> a -> a) -> Identity a -> a
foldl1 a -> a -> a
_=Identity 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' =(a -> b -> b) -> b -> Identity a -> b
forall a b. (a -> b -> b) -> b -> Identity a -> b
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
_=Identity 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 =Identity a -> a
forall a. Identity a -> a
runIdentity minimum :: forall a. Ord a => Identity a -> a
minimum =Identity a -> a
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 =Identity a -> a
forall a. Identity a -> a
runIdentity sum :: forall a. Num a => Identity a -> a
sum =Identity a -> a
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 =(a -> b) -> Identity a -> Identity b
forall a b. Coercible a b => a -> b
coerce -- | @since 4.8.0.0instanceApplicative Identity wherepure :: forall a. a -> Identity a
pure =a -> Identity a
forall a. a -> Identity a
Identity <*> :: forall a b. Identity (a -> b) -> Identity a -> Identity b
(<*>) =Identity (a -> b) -> Identity a -> Identity b
forall a b. Coercible a b => a -> b
coerce liftA2 :: forall a b c.
(a -> b -> c) -> Identity a -> Identity b -> Identity c
liftA2 =(a -> b -> c) -> Identity a -> Identity b -> Identity c
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 (Identity a -> a
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 =a -> Identity a
forall a. a -> Identity a
Identity ((a -> a) -> a
forall a. (a -> a) -> a
fix (Identity a -> a
forall a. Identity a -> a
runIdentity (Identity a -> a) -> (a -> Identity a) -> a -> a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> Identity a
f ))

AltStyle によって変換されたページ (->オリジナル) /