
Data.Monoid.Combinators  Portability  nonportable (type families, MPTCs)  Stability  experimental  Maintainer  ekmett@gmail.com 





Description 
Utilities for working with Monoids that conflict with names from the Prelude,
Data.Foldable, Control.Monad or elsewhere. Intended to be imported qualified.
import Data.Group.Combinators as Monoid


Synopsis 

module Data.Monoid.Generator   mapM_ :: (Generator c, Monad m) => (Elem c > m b) > c > m ()   forM_ :: (Generator c, Monad m) => c > (Elem c > m b) > m ()   msum :: (Generator c, MonadPlus m, m a ~ Elem c) => c > m a   traverse_ :: (Generator c, Applicative f) => (Elem c > f b) > c > f ()   for_ :: (Generator c, Applicative f) => c > (Elem c > f b) > f ()   asum :: (Generator c, Alternative f, f a ~ Elem c) => c > f a   and :: (Generator c, Elem c ~ Bool) => c > Bool   or :: (Generator c, Elem c ~ Bool) => c > Bool   any :: Generator c => (Elem c > Bool) > c > Bool   all :: Generator c => (Elem c > Bool) > c > Bool   foldMap :: (Monoid m, Generator c) => (Elem c > m) > c > m   fold :: (Monoid m, Generator c, Elem c ~ m) => c > m   toList :: Generator c => c > [Elem c]   concatMap :: Generator c => (Elem c > [b]) > c > [b]   elem :: (Generator c, Eq (Elem c)) => Elem c > c > Bool   filter :: (Generator c, Reducer (Elem c) m) => (Elem c > Bool) > c > m   filterWith :: (Generator c, Reducer (Elem c) m) => (m > n) > (Elem c > Bool) > c > n   find :: Generator c => (Elem c > Bool) > c > Maybe (Elem c)   sum :: (Generator c, Num (Elem c)) => c > Elem c   product :: (Generator c, Num (Elem c)) => c > Elem c   notElem :: (Generator c, Eq (Elem c)) => Elem c > c > Bool   repeat :: Reducer e m => e > m   replicate :: (Monoid m, Integral n) => m > n > m   cycle :: Monoid m => m > m   prop_replicate_right_distributive :: (Eq m, Monoid m, Arbitrary m, Integral n) => m > n > n > Bool 


Documentation 

module Data.Monoid.Generator 

Monadic Reduction



Efficiently mapReduce a Generator using the Action monoid. A specialized version of its namesake from Data.Foldable and Control.Monad
mapReduceWith getAction



Convenience function as found in Data.Foldable and Control.Monad
flip mapM_



The sum of a collection of actions, generalizing concat
reduceWith getMonadSum


Applicative Reduction



Efficiently mapReduce a Generator using the Traversal monoid. A specialized version of its namesake from Data.Foldable
mapReduce getTraversal



Convenience function as found in Data.Foldable
flip traverse_



The sum of a collection of actions, generalizing concat
reduceWith getAlt


Logical Reduction



Efficiently reduce a Generator that contains values of type Bool
reduceWith getAll



Efficiently reduce a Generator that contains values of type Bool
reduceWith getAny



Efficiently mapReduce any Generator checking to see if any of its values match the supplied predicate
mapReduceWith getAny



Efficiently mapReduce any Generator checking to see if all of its values match the supplied predicate
mapReduceWith getAll


Monoidal Reduction



Efficiently mapReduce a Generator using the Self monoid. A specialized version of its namesake from Data.Foldable
mapReduceWith getSelf



Efficiently reduce a Generator using the Self monoid. A specialized version of its namesake from Data.Foldable
reduceWith getSelf



Convert any Generator to a list of its contents. Specialization of reduce


ListLike Reduction



Type specialization of foldMap above



Check to see if any member of the Generator matches the supplied value



Efficiently mapReduce a subset of the elements in a Generator



Allows idiomatic specialization of filter by proving a function that will be used to transform the output



A specialization of filter using the First Monoid, analogous to Data.List.find
filterWith getFirst



Efficiently sum over the members of any Generator
reduceWith getSum



Efficiently take the product of every member of a Generator
reduceWith getProduct



Check to make sure that the supplied value is not a member of the Generator


ListLike Monoid Production



A generalization of Data.List.repeat to an arbitrary Monoid. May fail to terminate for some values in some monoids.



A generalization of Data.List.replicate to an arbitrary Monoid. Adapted from
http://augustss.blogspot.com/2008/07/lostandfoundifiwrite108in.html



A generalization of Data.List.cycle to an arbitrary Monoid. May fail to terminate for some values in some monoids.


QuickCheck Properties




Produced by Haddock version 2.4.2 