Modulegeneric-deriving-1.14.7Haskell2010
Generics.Deriving.Monoid
- 10 types
- 4 classes
- 4 values
- Packagegeneric-deriving-1.14.7
- Exports19
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceBase.hs
Instances27GMonoid, …
GMonoid AllDefined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid AnyDefined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid OrderingDefined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid ()Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid (First a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid (Last a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid (Endo a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid [a]Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid a => GMonoid (Identity a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid a => GMonoid (Down a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid a => GMonoid (Dual a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid m => GMonoid (WrappedMonoid m)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid · orphanGSemigroup a => GMonoid (Maybe a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid · orphanNum a => GMonoid (Product a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalNum a => GMonoid (Sum a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(Generic a, GMonoid' (Rep a)) => GMonoid (Default a)Defined in generic-deriving-1.14.7 · Generics.Deriving.DefaultGMonoid (Proxy s)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid b => GMonoid (a -> b)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(GMonoid a, GMonoid b) => GMonoid (a, b)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid a => GMonoid (Const a b)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalAlternative f => GMonoid (Alt f a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(GMonoid a, GMonoid b, GMonoid c) => GMonoid (a, b, c)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(GMonoid a, GMonoid b, GMonoid c, GMonoid d) => GMonoid (a, b, c, d)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(GMonoid a, GMonoid b, GMonoid c, GMonoid d, GMonoid e) => GMonoid (a, b, c, d, e)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(GMonoid a, GMonoid b, GMonoid c, GMonoid d, GMonoid e, GMonoid f) => GMonoid (a, b, c, d, e, f)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(GMonoid a, GMonoid b, GMonoid c, GMonoid d, GMonoid e, GMonoid f, GMonoid g) => GMonoid (a, b, c, d, e, f, g)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(GMonoid a, GMonoid b, GMonoid c, GMonoid d, GMonoid e, GMonoid f, GMonoid g, GMonoid h) => GMonoid (a, b, c, d, e, f, g, h)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal
Instances4GMonoid'
GMonoid' U1Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid a => GMonoid' (K1 i a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(GMonoid' f, GMonoid' h) => GMonoid' (f :*: h)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGMonoid' f => GMonoid' (M1 i c f)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal
Instances4Monoid'
Monoid' U1Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalMonoid a => Monoid' (K1 i a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal(Monoid' f, Monoid' h) => Monoid' (f :*: h)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalMonoid' f => Monoid' (M1 i c f)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.Internal
The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity
- Left identity
- Associativity
(
law)
- Concatenation
You can alternatively define mconcat instead of mempty, in which case the laws are:
- Unit
- Multiplication
- Subclass
The method names refer to the monoid of lists under concatenation, but there are many other instances.
Some types can be viewed as a monoid in more than one way,
e.g. both addition and multiplication on numbers.
In such cases we often define newtypes and make those instances
of Monoid, e.g. Data.Semigroup.Sum and Data.Semigroup.Product.
NOTE: Semigroup is a superclass of Monoid since base-4.11.0.0.
Methods
mempty :: aIdentity of mappend
Examples
Example1 expression "Hello world" <> mempty"Hello world"
Example1 expression mempty <> [1, 2, 3][1,2,3]
mappend :: a -> a -> aAn associative operation
NOTE: This method is redundant and has the default implementation
mappend = (<>)since base-4.11.0.0. Should it be implemented manually, since mappend is a synonym for (<>), it is expected that the two functions are defined the same way. In a future GHC release mappend will be removed from Monoid.mconcat :: [a] -> aFold a list using the monoid.
For most types, the default definition for mconcat will be used, but the function is included in the class definition so that an optimized version can be provided for specific types.
Example1 expression mconcat ["Hello", " ", "Haskell", "!"]"Hello Haskell!"
Instances68Monoid, …
Monoid ByteArrayDefined in base-4.23.0.0 · Data.Array.ByteMonoid IntSetDefined in containers-0.8 · Data.IntSet.Internalmempty= emptyMonoid UnitDefined in deepseq-1.5.2.0 · Control.DeepSeqMonoid AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid EventDefined in ghc-internal-10.0.0 · GHC.Internal.Event.Internal.TypesMonoid EventLifetimeDefined in ghc-internal-10.0.0 · GHC.Internal.Event.Internal.TypesMonoid LifetimeDefined in ghc-internal-10.0.0 · GHC.Internal.Event.Internal.Typesmappendtakes the longer of two lifetimes.Monoid ExceptionContextDefined in ghc-internal-10.0.0 · GHC.Internal.Exception.ContextMonoid OrderingDefined in ghc-internal-10.0.0 · GHC.Internal.BaseMonoid DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJMonoid ()Defined in ghc-internal-10.0.0 · GHC.Internal.BaseMonoid (Comparison a)Defined in base-4.23.0.0 · Data.Functor.ContravariantMonoid (Equivalence a)Defined in base-4.23.0.0 · Data.Functor.ContravariantMonoid (Predicate a)Defined in base-4.23.0.0 · Data.Functor.ContravariantMonoid (IntMap a)Defined in containers-0.8 · Data.IntMap.Internalmempty= emptyMonoid (Seq a)Defined in containers-0.8 · Data.Sequence.Internalmempty= emptyMonoid (MergeSet a)Defined in containers-0.8 · Data.Set.InternalMonoid (EqM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtilMonoid (OrdM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtilMonoid (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidMonoid (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidMonoid (Endo a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJMonoid [a]Defined in ghc-internal-10.0.0 · GHC.Internal.BaseMonoid a => Monoid (Identity a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Functor.IdentityMonoid a => Monoid (Down a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.OrdMonoid a => Monoid (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid a => Monoid (STM a)Defined in ghc-internal-10.0.0 · GHC.Internal.STMMonoid a => Monoid (Q a)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.MonadMonoid a => Monoid (IO a)Defined in ghc-internal-10.0.0 · GHC.Internal.BaseMonoid a => Monoid (a)Defined in ghc-internal-10.0.0 · GHC.Internal.BaseMonoid m => Monoid (WrappedMonoid m)Defined in base-4.23.0.0 · Data.SemigroupMonoid p => Monoid (Par1 p)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsSemigroup a => Monoid (Maybe a)Defined in ghc-internal-10.0.0 · GHC.Internal.BaseLift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup
Smay be turned into a monoid simply by adjoining an elementenot inSand defininge*e = eande*s = s = s*efor alls ∈ S."Since 4.11.0: constraint on inner
avalue generalised from Monoid to Semigroup.Bits a => Monoid (Ior a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.BitsBits a => Monoid (Xor a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.BitsFiniteBits a => Monoid (And a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However, as some types (such as
Natural) have undefined complement, this is the only safe choice.FiniteBits a => Monoid (Iff a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However, as some types (such as
Natural) have undefined complement, this is the only safe choice.Ord a => Monoid (Set a)Defined in containers-0.8 · Data.Set.Internalmempty= emptyOrd a => Monoid (Max a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Functor.UtilsOrd a => Monoid (Min a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Functor.UtilsNum a => Monoid (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.Internal(Ord a, Bounded a) => Monoid (Max a)Defined in base-4.23.0.0 · Data.Semigroup(Ord a, Bounded a) => Monoid (Min a)Defined in base-4.23.0.0 · Data.Semigroup(Generic a, Monoid (Rep a ())) => Monoid (Generically a)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsMonoid (Proxy s)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.ProxyMonoid (U1 p)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsMonoid a => Monoid (Op a b)Defined in base-4.23.0.0 · Data.Functor.Contravariantmempty @(Op a b)without newtypes ismempty @(b->a)=_ -> mempty.mempty :: Op a b mempty = Op _ -> memptyMonoid a => Monoid (ST s a)Defined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.ST.Lazy.ImpMonoid a => Monoid (ST s a)Defined in ghc-internal-10.0.0 · GHC.Internal.STMonoid b => Monoid (a -> b)Defined in ghc-internal-10.0.0 · GHC.Internal.BaseOrd k => Monoid (Map k v)Defined in containers-0.8 · Data.Map.Internalmempty= empty(Monoid a, Monoid b) => Monoid (a, b)Defined in ghc-internal-10.0.0 · GHC.Internal.BaseAlternative f => Monoid (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid (f p) => Monoid (Rec1 f p)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsMonoid a => Monoid (Const a b)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Functor.Const(Applicative f, Monoid a) => Monoid (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Monoid(Monoid a, Monoid b, Monoid c) => Monoid (a, b, c)Defined in ghc-internal-10.0.0 · GHC.Internal.BaseMonoid c => Monoid (K1 i c p)Defined in ghc-internal-10.0.0 · GHC.Internal.Generics(Monoid (f a), Monoid (g a)) => Monoid (Product f g a)Defined in base-4.23.0.0 · Data.Functor.Product(Monoid (f p), Monoid (g p)) => Monoid ((:*:) f g p)Defined in ghc-internal-10.0.0 · GHC.Internal.Generics(Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d)Defined in ghc-internal-10.0.0 · GHC.Internal.BaseMonoid (f (g a)) => Monoid (Compose f g a)Defined in base-4.23.0.0 · Data.Functor.ComposeMonoid (f (g p)) => Monoid ((:.:) f g p)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsMonoid (f p) => Monoid (M1 i c f p)Defined in ghc-internal-10.0.0 · GHC.Internal.Generics(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e)Defined in ghc-internal-10.0.0 · GHC.Internal.Base
An associative operation.
Examples
[1,2,3] <> [4,5,6][1,2,3,4,5,6]
Just [1, 2, 3] <> Just [4, 5, 6]Just [1,2,3,4,5,6]
putStr "Hello, " <> putStrLn "World!"Hello, World!
This data type witnesses the lifting of a Monoid into an Applicative pointwise.
Examples
Ap (Just [1, 2, 3]) <> Ap NothingAp {getAp = Nothing}
Ap [Sum 10, Sum 20] <> Ap [Sum 1, Sum 2]Ap {getAp = [Sum {getSum = 11},Sum {getSum = 12},Sum {getSum = 21},Sum {getSum = 22}]}
Instances24Generic1, Monad, Functor, MonadFix, MonadFail, Applicative, …
Generic1 (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsMonad f => Monad (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidFunctor f => Functor (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidMonadFix f => MonadFix (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.FixMonadFail f => MonadFail (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidApplicative f => Applicative (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidFoldable f => Foldable (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.FoldableTraversable f => Traversable (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.TraversableAlternative f => Alternative (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidMonadPlus f => MonadPlus (Ap f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidFoldable1 f => Foldable1 (Ap f)Defined in base-4.23.0.0 · Data.Foldable1(Applicative f, Bounded a) => Bounded (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidEnum (f a) => Enum (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidEq (f a) => Eq (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Monoid(Data (f a), Data a, Typeable f) => Data (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Data(Applicative f, Num a) => Num (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidNote that even if the underlying Num and Applicative instances are lawful, for most Applicatives, this instance will not be lawful. If you use this instance with the list Applicative, the following customary laws will not hold:
Commutativity:
Example2 expressions Ap [10,20] + Ap [1,2]Ap {getAp = [11,12,21,22]}Ap [1,2] + Ap [10,20]Ap {getAp = [11,21,12,22]}
Additive inverse:
Example2 expressions Ap [] + negate (Ap [])Ap {getAp = []}fromInteger 0 :: Ap [] IntAp {getAp = [0]}
Distributivity:
Example2 expressions Ap [1,2] * (3 + 4)Ap {getAp = [7,14]}(Ap [1,2] * 3) + (Ap [1,2] * 4)Ap {getAp = [7,11,10,14]}
Ord (f a) => Ord (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidRead (f a) => Read (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidShow (f a) => Show (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidGeneric (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Generics(Applicative f, Semigroup a) => Semigroup (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Monoid(Applicative f, Monoid a) => Monoid (Ap f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Monoidtype Rep (Ap f a) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Ap"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"Ap"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAp"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep1 (Ap f) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Ap"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"Ap"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAp"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))
Maybe monoid returning the leftmost non-Nothing value.
First a is isomorphic to Alt Maybe a, but precedes it
historically.
Beware that Data.Monoid.First is different from
Data.Semigroup.First. The former returns the first non-Nothing,
so Data.Monoid.First Nothing <> x = x. The latter simply returns the first value,
thus Data.Semigroup.First Nothing <> x = Data.Semigroup.First Nothing.
Examples
First (Just "hello") <> First Nothing <> First (Just "world")First {getFirst = Just "hello"}
First Nothing <> memptyFirst {getFirst = Nothing}
Instances29Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad FirstDefined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidFunctor FirstDefined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidMonadFix FirstDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.FixApplicative FirstDefined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidFoldable FirstDefined in ghc-internal-10.0.0 · GHC.Internal.Data.FoldableTraversable FirstDefined in ghc-internal-10.0.0 · GHC.Internal.Data.TraversableMonadZip FirstDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.ZipNFData1 FirstDefined in deepseq-1.5.2.0 · Control.DeepSeqGFunctor FirstDefined in generic-deriving-1.14.7 · Generics.Deriving.FunctorGFoldable FirstDefined in generic-deriving-1.14.7 · Generics.Deriving.FoldableGTraversable FirstDefined in generic-deriving-1.14.7 · Generics.Deriving.TraversableGeneric1 FirstDefined in ghc-internal-10.0.0 · GHC.Internal.GenericsEq a => Eq (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidData a => Data (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.DataOrd a => Ord (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidRead a => Read (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidShow a => Show (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidGeneric (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsSemigroup (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidMonoid (First a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidNFData a => NFData (First a)Defined in deepseq-1.5.2.0 · Control.DeepSeqGEnum a => GEnum (First a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Enum(GEq a, GEnum a, GIx a) => GIx (First a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EnumGEq a => GEq (First a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EqGShow a => GShow (First a)Defined in generic-deriving-1.14.7 · Generics.Deriving.ShowGMonoid (First a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGSemigroup (First a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep (First a) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"First"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))type Rep1 First = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"First"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))
Maybe monoid returning the rightmost non-Nothing value.
Last a is isomorphic to Dual (First a), and thus to
Dual (Alt Maybe a)
Data.Semigroup.Last. The former returns the last non-Nothing,
so x <> Data.Monoid.Last Nothing = x. The latter simply returns the last value,
thus x <> Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing.
Examples
Last (Just "hello") <> Last Nothing <> Last (Just "world")Last {getLast = Just "world"}
Last Nothing <> memptyLast {getLast = Nothing}
Instances29Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad LastDefined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidFunctor LastDefined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidMonadFix LastDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.FixApplicative LastDefined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidFoldable LastDefined in ghc-internal-10.0.0 · GHC.Internal.Data.FoldableTraversable LastDefined in ghc-internal-10.0.0 · GHC.Internal.Data.TraversableMonadZip LastDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.ZipNFData1 LastDefined in deepseq-1.5.2.0 · Control.DeepSeqGFunctor LastDefined in generic-deriving-1.14.7 · Generics.Deriving.FunctorGFoldable LastDefined in generic-deriving-1.14.7 · Generics.Deriving.FoldableGTraversable LastDefined in generic-deriving-1.14.7 · Generics.Deriving.TraversableGeneric1 LastDefined in ghc-internal-10.0.0 · GHC.Internal.GenericsEq a => Eq (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidData a => Data (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.DataOrd a => Ord (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidRead a => Read (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidShow a => Show (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidGeneric (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsSemigroup (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidMonoid (Last a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.MonoidNFData a => NFData (Last a)Defined in deepseq-1.5.2.0 · Control.DeepSeqGEnum a => GEnum (Last a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Enum(GEq a, GEnum a, GIx a) => GIx (Last a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EnumGEq a => GEq (Last a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EqGShow a => GShow (Last a)Defined in generic-deriving-1.14.7 · Generics.Deriving.ShowGMonoid (Last a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGSemigroup (Last a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep (Last a) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Last"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))type Rep1 Last = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Last"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))
Boolean monoid under conjunction (&&).
All x <> All y = All (x && y)Examples
All True <> mempty <> All False)All {getAll = False}
mconcat (map (\x -> All (even x)) [2,4,6,7,8])All {getAll = False}
All True <> memptyAll {getAll = True}
Instances17Bounded, Eq, Data, Ord, Read, Show, …
Bounded AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalEq AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalData AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.DataOrd AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalRead AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalShow AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalGeneric AllDefined in ghc-internal-10.0.0 · GHC.Internal.GenericsSemigroup AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid AllDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalNFData AllDefined in deepseq-1.5.2.0 · Control.DeepSeqGEnum AllDefined in generic-deriving-1.14.7 · Generics.Deriving.EnumGIx AllDefined in generic-deriving-1.14.7 · Generics.Deriving.EnumGEq AllDefined in generic-deriving-1.14.7 · Generics.Deriving.EqGShow AllDefined in generic-deriving-1.14.7 · Generics.Deriving.ShowGMonoid AllDefined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGSemigroup AllDefined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep All = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"All"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"All"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAll"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))
Monoid under <|>.
Alt l <> Alt r == Alt (l <|> r)Examples
Alt (Just 12) <> Alt (Just 24)Alt {getAlt = Just 12}
Alt Nothing <> Alt (Just 24)Alt {getAlt = Just 24}
Instances32Generic1, Monad, Functor, MonadFix, Applicative, Foldable, …
Generic1 (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsMonad f => Monad (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalFunctor f => Functor (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonadFix f => MonadFix (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.FixApplicative f => Applicative (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalFoldable f => Foldable (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.FoldableTraversable f => Traversable (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.TraversableAlternative f => Alternative (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonadPlus f => MonadPlus (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonadZip f => MonadZip (Alt f)Defined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.ZipFoldable1 f => Foldable1 (Alt f)Defined in base-4.23.0.0 · Data.Foldable1Contravariant f => Contravariant (Alt f)Defined in base-4.23.0.0 · Data.Functor.ContravariantGCopoint f => GCopoint (Alt f)Defined in generic-deriving-1.14.7 · Generics.Deriving.CopointGFunctor f => GFunctor (Alt f)Defined in generic-deriving-1.14.7 · Generics.Deriving.FunctorEnum (f a) => Enum (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalEq (f a) => Eq (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.Internal(Data (f a), Data a, Typeable f) => Data (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.DataNum (f a) => Num (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalOrd (f a) => Ord (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalRead (f a) => Read (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalShow (f a) => Show (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsAlternative f => Semigroup (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalAlternative f => Monoid (Alt f a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalGEnum (f a) => GEnum (Alt f a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Enum(GEq (f a), GEnum (f a), GIx (f a)) => GIx (Alt f a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EnumGEq (f a) => GEq (Alt f a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EqGShow (f a) => GShow (Alt f a)Defined in generic-deriving-1.14.7 · Generics.Deriving.ShowAlternative f => GMonoid (Alt f a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalAlternative f => GSemigroup (Alt f a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep (Alt f a) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Alt"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Alt"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAlt"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep1 (Alt f) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Alt"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Alt"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAlt"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))
Boolean monoid under disjunction (||).
Any x <> Any y = Any (x || y)Examples
Any True <> mempty <> Any FalseAny {getAny = True}
mconcat (map (\x -> Any (even x)) [2,4,6,7,8])Any {getAny = True}
Any False <> memptyAny {getAny = False}
Instances17Bounded, Eq, Data, Ord, Read, Show, …
Bounded AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalEq AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalData AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.DataOrd AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalRead AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalShow AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalGeneric AnyDefined in ghc-internal-10.0.0 · GHC.Internal.GenericsSemigroup AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid AnyDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalNFData AnyDefined in deepseq-1.5.2.0 · Control.DeepSeqGEnum AnyDefined in generic-deriving-1.14.7 · Generics.Deriving.EnumGIx AnyDefined in generic-deriving-1.14.7 · Generics.Deriving.EnumGEq AnyDefined in generic-deriving-1.14.7 · Generics.Deriving.EqGShow AnyDefined in generic-deriving-1.14.7 · Generics.Deriving.ShowGMonoid AnyDefined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGSemigroup AnyDefined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep Any = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Any"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Any"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAny"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))
The dual of a Monoid, obtained by swapping the arguments of (<>).
Dual a <> Dual b == Dual (b <> a)Examples
Dual "Hello" <> Dual "World"Dual {getDual = "WorldHello"}
Dual (Dual "Hello") <> Dual (Dual "World")Dual {getDual = Dual {getDual = "HelloWorld"}}
Instances32Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad DualDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalFunctor DualDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonadFix DualDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.FixApplicative DualDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalFoldable DualDefined in ghc-internal-10.0.0 · GHC.Internal.Data.FoldableTraversable DualDefined in ghc-internal-10.0.0 · GHC.Internal.Data.TraversableMonadZip DualDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.ZipFoldable1 DualDefined in base-4.23.0.0 · Data.Foldable1NFData1 DualDefined in deepseq-1.5.2.0 · Control.DeepSeqGCopoint DualDefined in generic-deriving-1.14.7 · Generics.Deriving.CopointGFunctor DualDefined in generic-deriving-1.14.7 · Generics.Deriving.FunctorGFoldable DualDefined in generic-deriving-1.14.7 · Generics.Deriving.FoldableGTraversable DualDefined in generic-deriving-1.14.7 · Generics.Deriving.TraversableGeneric1 DualDefined in ghc-internal-10.0.0 · GHC.Internal.GenericsBounded a => Bounded (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.DataOrd a => Ord (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsSemigroup a => Semigroup (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid a => Monoid (Dual a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalNFData a => NFData (Dual a)Defined in deepseq-1.5.2.0 · Control.DeepSeqGEnum a => GEnum (Dual a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Enum(GEq a, GEnum a, GIx a) => GIx (Dual a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EnumGEq a => GEq (Dual a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EqGShow a => GShow (Dual a)Defined in generic-deriving-1.14.7 · Generics.Deriving.ShowGMonoid a => GMonoid (Dual a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGSemigroup a => GSemigroup (Dual a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep (Dual a) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Dual"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Dual"
'PrefixI 'True) (S1 ('MetaSel ('Just"getDual"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Dual = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Dual"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Dual"
'PrefixI 'True) (S1 ('MetaSel ('Just"getDual"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
The monoid of endomorphisms under composition.
Endo f <> Endo g == Endo (f . g)Examples
let computation = Endo ("Hello, " ++) <> Endo (++ "!")appEndo computation "Haskell""Hello, Haskell!"
let computation = Endo (*3) <> Endo (+1)appEndo computation 16
Instances6Generic, Semigroup, Monoid, GMonoid, GSemigroup, Rep
Generic (Endo a)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsSemigroup (Endo a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonoid (Endo a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalGMonoid (Endo a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalGSemigroup (Endo a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep (Endo a) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Endo"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Endo"
'PrefixI 'True) (S1 ('MetaSel ('Just"appEndo"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a -> a))))
Monoid under multiplication.
Product x <> Product y == Product (x * y)Examples
Product 3 <> Product 4 <> memptyProduct {getProduct = 12}
mconcat [ Product n | n <- [2 .. 10]]Product {getProduct = 3628800}
Constructors
ProductgetProduct :: a
Instances32Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad ProductDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalFunctor ProductDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonadFix ProductDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.FixApplicative ProductDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalFoldable ProductDefined in ghc-internal-10.0.0 · GHC.Internal.Data.FoldableTraversable ProductDefined in ghc-internal-10.0.0 · GHC.Internal.Data.TraversableMonadZip ProductDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.ZipFoldable1 ProductDefined in base-4.23.0.0 · Data.Foldable1NFData1 ProductDefined in deepseq-1.5.2.0 · Control.DeepSeqGFunctor ProductDefined in generic-deriving-1.14.7 · Generics.Deriving.FunctorGFoldable ProductDefined in generic-deriving-1.14.7 · Generics.Deriving.FoldableGTraversable ProductDefined in generic-deriving-1.14.7 · Generics.Deriving.TraversableGeneric1 ProductDefined in ghc-internal-10.0.0 · GHC.Internal.GenericsBounded a => Bounded (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.DataNum a => Num (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsNum a => Semigroup (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Product a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalNFData a => NFData (Product a)Defined in deepseq-1.5.2.0 · Control.DeepSeqGEnum a => GEnum (Product a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Enum(GEq a, GEnum a, GIx a) => GIx (Product a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EnumGEq a => GEq (Product a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EqGShow a => GShow (Product a)Defined in generic-deriving-1.14.7 · Generics.Deriving.ShowNum a => GMonoid (Product a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalNum a => GSemigroup (Product a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep (Product a) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Product"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Product"
'PrefixI 'True) (S1 ('MetaSel ('Just"getProduct"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Product = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Product"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Product"
'PrefixI 'True) (S1 ('MetaSel ('Just"getProduct"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
Monoid under addition.
Sum a <> Sum b = Sum (a + b)Examples
Sum 1 <> Sum 2 <> memptySum {getSum = 3}
mconcat [ Sum n | n <- [3 .. 9]]Sum {getSum = 42}
Instances33Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad SumDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalFunctor SumDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalMonadFix SumDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.FixApplicative SumDefined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalFoldable SumDefined in ghc-internal-10.0.0 · GHC.Internal.Data.FoldableTraversable SumDefined in ghc-internal-10.0.0 · GHC.Internal.Data.TraversableMonadZip SumDefined in ghc-internal-10.0.0 · GHC.Internal.Control.Monad.ZipFoldable1 SumDefined in base-4.23.0.0 · Data.Foldable1NFData1 SumDefined in deepseq-1.5.2.0 · Control.DeepSeqGCopoint SumDefined in generic-deriving-1.14.7 · Generics.Deriving.CopointGFunctor SumDefined in generic-deriving-1.14.7 · Generics.Deriving.FunctorGFoldable SumDefined in generic-deriving-1.14.7 · Generics.Deriving.FoldableGTraversable SumDefined in generic-deriving-1.14.7 · Generics.Deriving.TraversableGeneric1 SumDefined in ghc-internal-10.0.0 · GHC.Internal.GenericsBounded a => Bounded (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.DataNum a => Num (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.GenericsNum a => Semigroup (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Sum a)Defined in ghc-internal-10.0.0 · GHC.Internal.Data.Semigroup.InternalNFData a => NFData (Sum a)Defined in deepseq-1.5.2.0 · Control.DeepSeqGEnum a => GEnum (Sum a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Enum(GEq a, GEnum a, GIx a) => GIx (Sum a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EnumGEq a => GEq (Sum a)Defined in generic-deriving-1.14.7 · Generics.Deriving.EqGShow a => GShow (Sum a)Defined in generic-deriving-1.14.7 · Generics.Deriving.ShowNum a => GMonoid (Sum a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Monoid.InternalNum a => GSemigroup (Sum a)Defined in generic-deriving-1.14.7 · Generics.Deriving.Semigroup.Internaltype Rep (Sum a) = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Sum"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Sum"
'PrefixI 'True) (S1 ('MetaSel ('Just"getSum"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Sum = D1 ('MetaDataDefined in ghc-internal-10.0.0 · GHC.Internal.Generics"Sum"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Sum"
'PrefixI 'True) (S1 ('MetaSel ('Just"getSum"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
Orphan instances
2 instancesGMonoid m => GMonoid (WrappedMonoid m)GSemigroup a => GMonoid (Maybe a)