Moduleghc-internal-9.1003.0Haskell2010
GHC.Internal.Data.Semigroup.Internal
Auxiliary definitions for Semigroup
This module provides some newtype wrappers and helpers which are
reexported from the Data.Semigroup module or imported directly
by some other modules.
This module also provides internal definitions related to the Semigroup class some.
This module exists mostly to simplify or workaround import-graph issues.
- 7 types
- 4 values
- Packageghc-internal-9.1003.0
- Exports11
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceInternal.hs
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"}}
Instances18Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonadFix DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixApplicative DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFoldable DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableGeneric1 DualDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalBounded a => Bounded (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd a => Ord (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalSemigroup a => Semigroup (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonoid a => Monoid (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep (Dual a) = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"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-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"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
Instances4Generic, Semigroup, Monoid, Rep
Generic (Endo a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalSemigroup (Endo a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonoid (Endo a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep (Endo a) = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"Endo"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Endo"
'PrefixI 'True) (S1 ('MetaSel ('Just"appEndo"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a -> a))))
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}
Instances10Bounded, Eq, Data, Ord, Read, Show, …
Bounded AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalData AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalRead AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalShow AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalSemigroup AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonoid AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep All = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"All"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"All"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAll"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))
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}
Instances10Bounded, Eq, Data, Ord, Read, Show, …
Bounded AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalData AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalRead AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalShow AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalSemigroup AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonoid AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep Any = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"Any"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Any"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAny"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))
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}
Instances19Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonadFix SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixApplicative SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFoldable SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableGeneric1 SumDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalBounded a => Bounded (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataNum a => Num (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalNum a => Semigroup (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep (Sum a) = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"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-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"Sum"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Sum"
'PrefixI 'True) (S1 ('MetaSel ('Just"getSum"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
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
Instances19Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonadFix ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixApplicative ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFoldable ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableGeneric1 ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalBounded a => Bounded (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataNum a => Num (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalNum a => Semigroup (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep (Product a) = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"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-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"Product"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Product"
'PrefixI 'True) (S1 ('MetaSel ('Just"getProduct"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
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}
Instances21Generic1, Monad, Functor, MonadFix, Applicative, Foldable, …
Generic1 (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonad f => Monad (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFunctor f => Functor (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonadFix f => MonadFix (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixApplicative f => Applicative (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalFoldable f => Foldable (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable f => Traversable (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableAlternative f => Alternative (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalMonadPlus f => MonadPlus (Alt f)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEnum (f a) => Enum (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalEq (f a) => Eq (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internal(Data (f a), Data a, Typeable f) => Data (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataNum (f a) => Num (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd (f a) => Ord (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalRead (f a) => Read (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalShow (f a) => Show (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalAlternative f => Semigroup (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalAlternative f => Monoid (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internaltype Rep (Alt f a) = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"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-9.1003.0 · GHC.Internal.Data.Semigroup.Internal"Alt"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Alt"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAlt"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))