Hoogle Search
Within LTS Haskell 22.20 (ghc-9.6.4)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
monoid :: forall a . (Monoid a, Show a, Arbitrary a, EqProp a) => a -> TestBatchcheckers Test.QuickCheck.Classes Properties to check that the Monoid a satisfies the monoid properties. The argument value is ignored and is present only for its type.
-
base Prelude The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity x <> mempty = x
- Left identity mempty <> x = x
- Associativity x <> (y <> z) = (x <> y) <> z (Semigroup law)
- Concatenation mconcat = foldr (<>) mempty
- Unit mconcat (pure x) = x
- Multiplication mconcat (join xss) = mconcat (fmap mconcat xss)
- Subclass mconcat (toList xs) = sconcat xs
-
A type a is a Monoid if it provides an associative function (<>) that lets you combine any two values of type a into one, and a neutral element (mempty) such that
a <> mempty == mempty <> a == a
A Monoid is a Semigroup with the added requirement of a neutral element. Thus any Monoid is a Semigroup, but not the other way around.Examples
The Sum monoid is defined by the numerical addition operator and `0` as neutral element:>>> mempty :: Sum Int Sum {getSum = 0} >>> Sum 1 <> Sum 2 <> Sum 3 <> Sum 4 :: Sum Int Sum {getSum = 10}
We can combine multiple values in a list into a single value using the mconcat function. Note that we have to specify the type here since Int is a monoid under several different operations:>>> mconcat [1,2,3,4] :: Sum Int Sum {getSum = 10} >>> mconcat [] :: Sum Int Sum {getSum = 0}
Another valid monoid instance of Int is Product It is defined by multiplication and `1` as neutral element:>>> Product 1 <> Product 2 <> Product 3 <> Product 4 :: Product Int Product {getProduct = 24} >>> mconcat [1,2,3,4] :: Product Int Product {getProduct = 24} >>> mconcat [] :: Product Int Product {getProduct = 1}
-
base Data.Monoid The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity x <> mempty = x
- Left identity mempty <> x = x
- Associativity x <> (y <> z) = (x <> y) <> z (Semigroup law)
- Concatenation mconcat = foldr (<>) mempty
- Unit mconcat (pure x) = x
- Multiplication mconcat (join xss) = mconcat (fmap mconcat xss)
- Subclass mconcat (toList xs) = sconcat xs
-
base GHC.Base The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity x <> mempty = x
- Left identity mempty <> x = x
- Associativity x <> (y <> z) = (x <> y) <> z (Semigroup law)
- Concatenation mconcat = foldr (<>) mempty
- Unit mconcat (pure x) = x
- Multiplication mconcat (join xss) = mconcat (fmap mconcat xss)
- Subclass mconcat (toList xs) = sconcat xs
-
amazonka-core Amazonka.Prelude The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity x <> mempty = x
- Left identity mempty <> x = x
- Associativity x <> (y <> z) = (x <> y) <> z (Semigroup law)
- Concatenation mconcat = foldr (<>) mempty
- Unit mconcat (pure x) = x
- Multiplication mconcat (join xss) = mconcat (fmap mconcat xss)
- Subclass mconcat (toList xs) = sconcat xs
-
base-compat Data.Monoid.Compat The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity x <> mempty = x
- Left identity mempty <> x = x
- Associativity x <> (y <> z) = (x <> y) <> z (Semigroup law)
- Concatenation mconcat = foldr (<>) mempty
- Unit mconcat (pure x) = x
- Multiplication mconcat (join xss) = mconcat (fmap mconcat xss)
- Subclass mconcat (toList xs) = sconcat xs
-
hedgehog Hedgehog.Internal.Prelude The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity x <> mempty = x
- Left identity mempty <> x = x
- Associativity x <> (y <> z) = (x <> y) <> z (Semigroup law)
- Concatenation mconcat = foldr (<>) mempty
- Unit mconcat (pure x) = x
- Multiplication mconcat (join xss) = mconcat (fmap mconcat xss)
- Subclass mconcat (toList xs) = sconcat xs
-
validity Data.Validity The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity x <> mempty = x
- Left identity mempty <> x = x
- Associativity x <> (y <> z) = (x <> y) <> z (Semigroup law)
- Concatenation mconcat = foldr (<>) mempty
- Unit mconcat (pure x) = x
- Multiplication mconcat (join xss) = mconcat (fmap mconcat xss)
- Subclass mconcat (toList xs) = sconcat xs
-
ghc GHC.Prelude.Basic The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity x <> mempty = x
- Left identity mempty <> x = x
- Associativity x <> (y <> z) = (x <> y) <> z (Semigroup law)
- Concatenation mconcat = foldr (<>) mempty
- Unit mconcat (pure x) = x
- Multiplication mconcat (join xss) = mconcat (fmap mconcat xss)
- Subclass mconcat (toList xs) = sconcat xs
Page 1 of many | Next