Identity functor and monad. (a non-strict monad)
Examples
fmap (+1) (Identity 0)Identity 1
Identity [1, 2, 3] <> Identity [4, 5, 6]Identity [1,2,3,4,5,6]
>>> do
x <- Identity 10
y <- Identity (x + 5)
pure (x + y)
Identity 25
Constructors
IdentityrunIdentity :: a
Instances88Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityFunctor IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityMonadFix IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityApplicative IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityFoldable IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityTraversable IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableMonadZip IdentityDefined in base-4.20.2.0 · Control.Monad.ZipFoldable1 IdentityDefined in base-4.20.2.0 · Data.Foldable1Eq1 IdentityDefined in base-4.20.2.0 · Data.Functor.ClassesOrd1 IdentityDefined in base-4.20.2.0 · Data.Functor.ClassesRead1 IdentityDefined in base-4.20.2.0 · Data.Functor.ClassesShow1 IdentityDefined in base-4.20.2.0 · Data.Functor.ClassesNFData1 IdentityDefined in deepseq-1.5.0.0 · Control.DeepSeqHashable1 IdentityDefined in hashable-1.4.7.0 · Data.Hashable.ClassDistributive IdentityDefined in distributive-0.6.2.1 · Data.DistributiveComonad IdentityDefined in comonad-5.0.9 · Control.ComonadComonadApply IdentityDefined in comonad-5.0.9 · Control.ComonadAlt IdentityDefined in semigroupoids-6.0.1 · Data.Functor.AltChoose the first option every time. While 'choose the last option' every time is also valid, this instance satisfies more laws.
Apply IdentityDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind IdentityDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend IdentityDefined in semigroupoids-6.0.1 · Data.Functor.ExtendTraversable1 IdentityDefined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassRepresentable IdentityDefined in adjunctions-4.4.3 · Data.Functor.RepInvariant IdentityDefined in invariant-0.6.4 · Data.Functor.InvariantSelective IdentityDefined in selective-0.7.0.1 · Control.SelectiveAdjustable IdentityDefined in keys-3.12.3 · Data.KeyFoldableWithKey IdentityDefined in keys-3.12.3 · Data.KeyFoldableWithKey1 IdentityDefined in keys-3.12.3 · Data.KeyIndexable IdentityDefined in keys-3.12.3 · Data.KeyKeyed IdentityDefined in keys-3.12.3 · Data.KeyLookup IdentityDefined in keys-3.12.3 · Data.KeyTraversableWithKey IdentityDefined in keys-3.12.3 · Data.KeyTraversableWithKey1 IdentityDefined in keys-3.12.3 · Data.KeyZip IdentityDefined in keys-3.12.3 · Data.KeyZipWithKey IdentityDefined in keys-3.12.3 · Data.KeyCopointed IdentityDefined in pointed-5.0.4 · Data.CopointedPointed IdentityDefined in pointed-5.0.4 · Data.PointedGeneric1 IdentityDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityFoldableWithIndex () IdentityDefined in indexed-traversable-0.1.4 · WithIndexFunctorWithIndex () IdentityDefined in indexed-traversable-0.1.4 · WithIndexTraversableWithIndex () IdentityDefined in indexed-traversable-0.1.4 · WithIndexMonadBase Identity IdentityDefined in transformers-base-0.4.6 · Control.Monad.BaseAdjunction Identity IdentityDefined in adjunctions-4.4.3 · Data.Functor.AdjunctionUnbox a => Vector Vector (Identity a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => MVector MVector (Identity a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseComonad w => ComonadCofree Identity (CoiterT w)Defined in free-5.2 · Control.Comonad.Trans.CoiterMonad m => MonadFree Identity (IterT m)Defined in free-5.2 · Control.Monad.Trans.IterMonoid w => MonadAccum w (AccumT w Identity)Defined in mtl-2.3.1 · Control.Monad.AccumMonadSelect r (SelectT r Identity)Defined in mtl-2.3.1 · Control.Monad.SelectBounded a => Bounded (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityEnum a => Enum (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityEq a => Eq (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityFloating a => Floating (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityFractional a => Fractional (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityIntegral a => Integral (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityData a => Data (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataNum a => Num (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityOrd a => Ord (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityRead a => Read (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityThis instance would be equivalent to the derived instances of the Identity newtype if the runIdentity field were removed
Real a => Real (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityRealFloat a => RealFloat (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityRealFrac a => RealFrac (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityShow a => Show (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityThis instance would be equivalent to the derived instances of the Identity newtype if the runIdentity field were removed
Ix a => Ix (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityIsString a => IsString (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.StringGeneric (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentitySemigroup a => Semigroup (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityMonoid a => Monoid (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityBits a => Bits (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityFiniteBits a => FiniteBits (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityStorable a => Storable (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityNFData a => NFData (Identity a)Defined in deepseq-1.5.0.0 · Control.DeepSeqBinary a => Binary (Identity a)Defined in binary-0.8.9.3 · Data.Binary.ClassHashable a => Hashable (Identity a)Defined in hashable-1.4.7.0 · Data.Hashable.ClassPrim a => Prim (Identity a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (Identity a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseDefault a => Default (Identity a)Defined in data-default-0.8.0.1 · Data.Default.InternalAbelian a => Abelian (Identity a)Defined in groups-0.5.3 · Data.GroupCyclic a => Cyclic (Identity a)Defined in groups-0.5.3 · Data.GroupGroup a => Group (Identity a)Defined in groups-0.5.3 · Data.GroupIdentity lifts groups pointwise (at only one point).
Cosieve (->) IdentityDefined in profunctors-5.6.3 · Data.Profunctor.SieveSieve (->) IdentityDefined in profunctors-5.6.3 · Data.Profunctor.Sievetype Rep (Identity a) = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.Identity"Identity"
"GHC.Internal.Data.Functor.Identity"
"ghc-internal"
'True) (C1 ('MetaCons"Identity"
'PrefixI 'True) (S1 ('MetaSel ('Just"runIdentity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Identity = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.Identity"Identity"
"GHC.Internal.Data.Functor.Identity"
"ghc-internal"
'True) (C1 ('MetaCons"Identity"
'PrefixI 'True) (S1 ('MetaSel ('Just"runIdentity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))data MVector s (Identity a)MV_Identity (MVector s a)
data Vector (Identity a)V_Identity (Vector a)
type Rep Identity = ()Defined in adjunctions-4.4.3 · Data.Functor.Reptype Key Identity = ()Defined in keys-3.12.3 · Data.Key