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
Instances43Monad, 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.TraversableMonadZip ProductDefined in base-4.20.2.0 · Control.Monad.ZipFoldable1 ProductDefined in base-4.20.2.0 · Data.Foldable1NFData1 ProductDefined in deepseq-1.5.0.0 · Control.DeepSeqDistributive ProductDefined in distributive-0.6.2.1 · Data.DistributiveApply ProductDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassBind ProductDefined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassExtend ProductDefined in semigroupoids-6.0.1 · Data.Functor.ExtendTraversable1 ProductDefined in semigroupoids-6.0.1 · Data.Semigroup.Traversable.ClassRepresentable ProductDefined in adjunctions-4.4.3 · Data.Functor.RepInvariant ProductDefined in invariant-0.6.4 · Data.Functor.Invariantfrom Data.Monoid
Copointed ProductDefined in pointed-5.0.4 · Data.CopointedPointed ProductDefined in pointed-5.0.4 · Data.PointedGeneric1 ProductDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalUnbox a => Vector Vector (Product a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => MVector MVector (Product a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBounded 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.InternalNFData a => NFData (Product a)Defined in deepseq-1.5.0.0 · Control.DeepSeqBinary 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.BaseNum a => Default (Product a)Defined in data-default-0.8.0.1 · Data.Default.InternalFractional a => Abelian (Product a)Defined in groups-0.5.3 · Data.GroupFractional a => Group (Product a)Defined in groups-0.5.3 · Data.Grouptype 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))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 = ()Defined in adjunctions-4.4.3 · Data.Functor.Rep