(original) (raw)
{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE Trustworthy #-}
module Data.Functor.Identity ( Identity(..), ) where
import Control.Monad.Fix import Data.Bits (Bits, FiniteBits) import Data.Coerce import Data.Foldable import Data.Functor.Utils ((#.)) import Foreign.Storable (Storable) import GHC.Ix (Ix) import GHC.Base ( Applicative(..), Eq(..), Functor(..), Monad(..) , Semigroup, Monoid, Ord(..), ($), (.) ) import GHC.Enum (Bounded, Enum) import GHC.Float (Floating, RealFloat) import GHC.Generics (Generic, Generic1) import GHC.Num (Num) import GHC.Read (Read(..), lex, readParen) import GHC.Real (Fractional, Integral, Real, RealFrac) import GHC.Show (Show(..), showParen, showString) import GHC.Types (Bool(..))
newtype Identity 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
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
, Identity a
Identity a -> Identity a -> Bounded (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
, 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
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
, 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
/= :: 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
, Bits (Identity a)
Bits (Identity a)
-> (Identity a -> Int)
-> (Identity a -> Int)
-> (Identity a -> Int)
-> FiniteBits (Identity a)
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
, 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
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
, 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
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
, (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
$cto :: forall a x. Rep (Identity a) x -> Identity a
$cfrom :: forall a x. Identity a -> Rep (Identity a) x
Generic
, (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
$cto1 :: forall a. Rep1 Identity a -> Identity a
$cfrom1 :: forall a. Identity a -> Rep1 Identity a
Generic1
, 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
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
, 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
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
, 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
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
, 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
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
, 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
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
, 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 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
, 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 toRational :: Identity a -> Rational $ctoRational :: forall a. Real a => Identity a -> Rational Real
, 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) 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
, 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 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
, 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 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
)
instance (Read a) => Read (Identity a) where readsPrec :: 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 11 String s]
instance (Show a) => Show (Identity a) where showsPrec :: 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 11 a x
instance Foldable Identity where foldMap :: forall m a. Monoid m => (a -> m) -> Identity a -> m foldMap = (a -> m) -> Identity a -> m coerce
elem :: forall a. Eq a => a -> Identity a -> Boolelem = ((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 coerce foldl' :: forall b a. (b -> a -> b) -> b -> Identity a -> b foldl' = (b -> a -> b) -> b -> Identity 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 (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 1 maximum :: 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]
instance Functor Identity where fmap :: forall a b. (a -> b) -> Identity a -> Identity b fmap = (a -> b) -> Identity a -> Identity b coerce
instance Applicative Identity where pure :: 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 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 coerce
instance Monad Identity where Identity 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)
instance MonadFix Identity where mfix :: 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))