Modulelinear-base-0.8.1
Data.Monoid.Linear.Internal.Semigroup
- 9 types
- 1 class
- 2 values
- Packagelinear-base-0.8.1
- Exports12
- LicenceMIT
- SourceSemigroup.hs
Beware that Data.Semigroup.First is different from
Data.Monoid.First. The former simply returns the first value,
so Data.Semigroup.First Nothing <> x = Data.Semigroup.First Nothing.
The latter returns the first non-Nothing,
thus Data.Monoid.First Nothing <> x = x.
Examples
First 0 <> First 10First {getFirst = 0}
sconcat $ First 1 :| [ First n | n <- [2 ..] ]First {getFirst = 1}
Instances38Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad FirstDefined in base-4.22.0.0 · Data.SemigroupFunctor FirstDefined in base-4.22.0.0 · Data.SemigroupMonadFix FirstDefined in base-4.22.0.0 · Data.SemigroupApplicative FirstDefined in base-4.22.0.0 · Data.SemigroupFoldable FirstDefined in base-4.22.0.0 · Data.SemigroupTraversable FirstDefined in base-4.22.0.0 · Data.SemigroupFoldable1 FirstDefined in base-4.22.0.0 · Data.Foldable1NFData1 FirstDefined in deepseq-1.5.1.0 · Control.DeepSeqGeneric1 FirstDefined in base-4.22.0.0 · Data.SemigroupGeneric1 FirstDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanUnbox a => MVector MVector (First a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => Vector Vector (First a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBounded a => Bounded (First a)Defined in base-4.22.0.0 · Data.SemigroupEnum a => Enum (First a)Defined in base-4.22.0.0 · Data.SemigroupEq a => Eq (First a)Defined in base-4.22.0.0 · Data.SemigroupData a => Data (First a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (First a)Defined in base-4.22.0.0 · Data.SemigroupRead a => Read (First a)Defined in base-4.22.0.0 · Data.SemigroupShow a => Show (First a)Defined in base-4.22.0.0 · Data.SemigroupGeneric (First a)Defined in base-4.22.0.0 · Data.SemigroupSemigroup (First a)Defined in base-4.22.0.0 · Data.SemigroupNFData a => NFData (First a)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary (First a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (First a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (First a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.FunctionBinary a => Binary (First a)Defined in binary-0.8.9.3 · Data.Binary.ClassHashable a => Hashable (First a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim a => Prim (First a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (First a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseGeneric (First a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanConsumable a => Consumable (First a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.ConsumableConsumable a => Semigroup (First a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigrouptype Rep (First a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"First"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 First = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"First"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))data MVector s (First a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector (First a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep (First a) = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"First"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 First = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"First"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
Beware that Data.Semigroup.Last is different from
Data.Monoid.Last. The former simply returns the last value,
so x <> Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing.
The latter returns the last non-Nothing,
thus x <> Data.Monoid.Last Nothing = x.
Examples
Last 0 <> Last 10Last {getLast = 10}
sconcat $ Last 1 :| [ Last n | n <- [2..]]* Hangs forever *
Instances38Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad LastDefined in base-4.22.0.0 · Data.SemigroupFunctor LastDefined in base-4.22.0.0 · Data.SemigroupMonadFix LastDefined in base-4.22.0.0 · Data.SemigroupApplicative LastDefined in base-4.22.0.0 · Data.SemigroupFoldable LastDefined in base-4.22.0.0 · Data.SemigroupTraversable LastDefined in base-4.22.0.0 · Data.SemigroupFoldable1 LastDefined in base-4.22.0.0 · Data.Foldable1NFData1 LastDefined in deepseq-1.5.1.0 · Control.DeepSeqGeneric1 LastDefined in base-4.22.0.0 · Data.SemigroupGeneric1 LastDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanUnbox a => MVector MVector (Last a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => Vector Vector (Last a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBounded a => Bounded (Last a)Defined in base-4.22.0.0 · Data.SemigroupEnum a => Enum (Last a)Defined in base-4.22.0.0 · Data.SemigroupEq a => Eq (Last a)Defined in base-4.22.0.0 · Data.SemigroupData a => Data (Last a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (Last a)Defined in base-4.22.0.0 · Data.SemigroupRead a => Read (Last a)Defined in base-4.22.0.0 · Data.SemigroupShow a => Show (Last a)Defined in base-4.22.0.0 · Data.SemigroupGeneric (Last a)Defined in base-4.22.0.0 · Data.SemigroupSemigroup (Last a)Defined in base-4.22.0.0 · Data.SemigroupNFData a => NFData (Last a)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary (Last a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Last a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Last a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.FunctionBinary a => Binary (Last a)Defined in binary-0.8.9.3 · Data.Binary.ClassHashable a => Hashable (Last a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim a => Prim (Last a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (Last a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseGeneric (Last a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanConsumable a => Consumable (Last a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.ConsumableConsumable a => Semigroup (Last a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigrouptype Rep (Last a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"Last"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Last = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"Last"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))data MVector s (Last a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector (Last a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep (Last a) = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"Last"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Last = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"Last"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
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}
Instances27Bounded, Eq, Data, Ord, Read, Show, …
Bounded AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalData AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNFData AllDefined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary AllDefined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryCoArbitrary AllDefined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryFunction AllDefined in QuickCheck-2.19.0.0 · Test.QuickCheck.FunctionBinary AllDefined in binary-0.8.9.3 · Data.Binary.ClassUnbox AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseGeneric AllDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanMonoid AllDefined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.MonoidConsumable AllDefined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.ConsumableDupable AllDefined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.DupableMovable AllDefined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.MovableSemigroup AllDefined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupMVector MVector AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep All = D1 ('MetaDataDefined in ghc-internal-9.1401.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)))data MVector s AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep All = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"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}
Instances27Bounded, Eq, Data, Ord, Read, Show, …
Bounded AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalData AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNFData AnyDefined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary AnyDefined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryCoArbitrary AnyDefined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryFunction AnyDefined in QuickCheck-2.19.0.0 · Test.QuickCheck.FunctionBinary AnyDefined in binary-0.8.9.3 · Data.Binary.ClassUnbox AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseGeneric AnyDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanMonoid AnyDefined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.MonoidConsumable AnyDefined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.ConsumableDupable AnyDefined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.DupableMovable AnyDefined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.MovableSemigroup AnyDefined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupMVector MVector AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep Any = D1 ('MetaDataDefined in ghc-internal-9.1401.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)))data MVector s AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep Any = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"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"}}
Instances39Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFunctor DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonadFix DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFoldable DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMonadZip DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipFoldable1 DualDefined in base-4.22.0.0 · Data.Foldable1NFData1 DualDefined in deepseq-1.5.1.0 · Control.DeepSeqGeneric1 DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 DualDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanUnbox a => MVector MVector (Dual a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => Vector Vector (Dual a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBounded a => Bounded (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd a => Ord (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup a => Semigroup (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid a => Monoid (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNFData a => NFData (Dual a)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary (Dual a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Dual a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Dual a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.FunctionBinary a => Binary (Dual a)Defined in binary-0.8.9.3 · Data.Binary.ClassPrim a => Prim (Dual a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (Dual a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseGeneric (Dual a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanMonoid a => Monoid (Dual a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.MonoidConsumable a => Consumable (Dual a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.ConsumableSemigroup a => Semigroup (Dual a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigrouptype Rep (Dual a) = D1 ('MetaDataDefined in ghc-internal-9.1401.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.1401.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))data MVector s (Dual a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector (Dual a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep (Dual a) = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"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 linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"Dual"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Dual"
'PrefixI 'True) (S1 ('MetaSel ('Just"getDual"
) '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
Instances42Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFunctor ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonadFix ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFoldable ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMonadZip ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipFoldable1 ProductDefined in base-4.22.0.0 · Data.Foldable1NFData1 ProductDefined in deepseq-1.5.1.0 · Control.DeepSeqGeneric1 ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 ProductDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanUnbox a => MVector MVector (Product a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => Vector Vector (Product a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBounded a => Bounded (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum a => Num (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNum a => Semigroup (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNFData a => NFData (Product a)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary (Product a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Product a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Product a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.FunctionBinary a => Binary (Product a)Defined in binary-0.8.9.3 · Data.Binary.ClassPrim a => Prim (Product a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (Product a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseGeneric (Product a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanMultIdentity a => Monoid (Product a)Defined in linear-base-0.8.1 · Data.Num.Linear · orphanConsumable a => Consumable (Product a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.ConsumableDupable a => Dupable (Product a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.DupableMovable a => Movable (Product a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.MovableMultiplicative a => Semigroup (Product a)Defined in linear-base-0.8.1 · Data.Num.Linear · orphantype Rep (Product a) = D1 ('MetaDataDefined in ghc-internal-9.1401.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.1401.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))data MVector s (Product a)MV_Product (MVector s a)
data Vector (Product a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep (Product a) = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"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 linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"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}
Instances42Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFunctor SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonadFix SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFoldable SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMonadZip SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipFoldable1 SumDefined in base-4.22.0.0 · Data.Foldable1NFData1 SumDefined in deepseq-1.5.1.0 · Control.DeepSeqGeneric1 SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 SumDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanUnbox a => MVector MVector (Sum a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => Vector Vector (Sum a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBounded a => Bounded (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalData a => Data (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum a => Num (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNum a => Semigroup (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNFData a => NFData (Sum a)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary (Sum a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Sum a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Sum a)Defined in QuickCheck-2.19.0.0 · Test.QuickCheck.FunctionBinary a => Binary (Sum a)Defined in binary-0.8.9.3 · Data.Binary.ClassPrim a => Prim (Sum a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (Sum a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseGeneric (Sum a)Defined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphanAddIdentity a => Monoid (Sum a)Defined in linear-base-0.8.1 · Data.Num.Linear · orphanConsumable a => Consumable (Sum a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.ConsumableDupable a => Dupable (Sum a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.DupableMovable a => Movable (Sum a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.MovableAdditive a => Semigroup (Sum a)Defined in linear-base-0.8.1 · Data.Num.Linear · orphantype Rep (Sum a) = D1 ('MetaDataDefined in ghc-internal-9.1401.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.1401.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))data MVector s (Sum a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector (Sum a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep (Sum a) = D1 ('MetaDataDefined in linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"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 linear-generics-0.2.3 · Generics.Linear.Instances.Base · orphan"Sum"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Sum"
'PrefixI 'True) (S1 ('MetaSel ('Just"getSum"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
Constructors
Endo (a %1 -> a)
Instances4Monoid, Semigroup
Semigroup (Endo a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupMonoid (Endo a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Monoid · orphanMonoid (Endo a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.MonoidSemigroup (Endo a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup
Constructors
Methods
(<>) :: a %1 -> a %1 -> ainfixr 6
Instances41Semigroup, …
Semigroup VoidDefined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup AllDefined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup AnyDefined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup OrderingDefined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup ()Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup a => Semigroup (Ur a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup (NonEmpty a)Defined in linear-base-0.8.1 · Data.List.Linear · orphanSemigroup (Array a)Defined in linear-base-0.8.1 · Data.Array.Polarized.Pull.InternalSemigroup (Array a)Defined in linear-base-0.8.1 · Data.Array.Polarized.PushSemigroup (ArrayWriter a)Defined in linear-base-0.8.1 · Data.Array.Polarized.PushSemigroup (Endo a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup (Vector a)Defined in linear-base-0.8.1 · Data.Vector.Mutable.Linear.InternalSemigroup [a]Defined in linear-base-0.8.1 · Data.List.Linear · orphanSemigroup a => Semigroup (Identity a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup a => Semigroup (Down a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup a => Semigroup (Dual a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup a => Semigroup (Maybe a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup a => Semigroup (IO a)Defined in linear-base-0.8.1 · System.IO.LinearSemigroup a => Semigroup (RIO a)Defined in linear-base-0.8.1 · System.IO.Resource.Linear.InternalSemigroup a => Semigroup (a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupAdditive a => Semigroup (Sum a)Defined in linear-base-0.8.1 · Data.Num.Linear · orphanAdditive a => Semigroup (Adding a)Defined in linear-base-0.8.1 · Data.Num.LinearMultiplicative a => Semigroup (Product a)Defined in linear-base-0.8.1 · Data.Num.Linear · orphanMultiplicative a => Semigroup (Multiplying a)Defined in linear-base-0.8.1 · Data.Num.LinearKeyed a => Semigroup (Set a)Defined in linear-base-0.8.1 · Data.Set.Mutable.Linear.InternalConsumable a => Semigroup (First a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupConsumable a => Semigroup (Last a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupConsumable a => Semigroup (First a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupConsumable a => Semigroup (Last a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup(Movable a, Semigroup a) => Semigroup (MovableMonoid a)Defined in linear-base-0.8.1 · Data.Unrestricted.Linear.Internal.InstancesKeyed k => Semigroup (HashMap k v)Defined in linear-base-0.8.1 · Data.HashMap.Mutable.Linear.InternalSemigroup (Proxy a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup(Semigroup a, Semigroup b) => Semigroup (a, b)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup(Consumable a, Consumable b) => Semigroup (Either a b)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup a => Semigroup (Const a b)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup(Applicative f, Semigroup a) => Semigroup (Ap f a)Defined in linear-base-0.8.1 · Data.Functor.Linear.Internal.Applicative · orphan(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup(Semigroup (f a), Semigroup (g a)) => Semigroup (Product f g a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup(Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.SemigroupSemigroup (f (g a)) => Semigroup (Compose f g a)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup(Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e)Defined in linear-base-0.8.1 · Data.Monoid.Linear.Internal.Semigroup