[cleanup on data.monoid.generator.methods ekmett@gmail.com**20090325082224] { hunk ./Data/Monoid/Generator.hs 10 - , m_traverse_ - , m_for_ - , m_mapM_ - , m_forM_ - , m_concatMap - , m_and - , m_or - , m_any - , m_all hunk ./Data/Monoid/Generator.hs 59 -m_traverse_ :: (Generator c, Applicative f) => (Elem c -> f b) -> c -> f () -m_traverse_ f = getTraversal . mapReduce f - -m_for_ :: (Generator c, Applicative f) => c -> (Elem c -> f b) -> f () -m_for_ = flip m_traverse_ - -m_mapM_ :: (Generator c, Monad m) => (Elem c -> m b) -> c -> m () -m_mapM_ f = getAction . mapReduce f - -m_forM_ :: (Generator c, Monad m) => c -> (Elem c -> m b) -> m () -m_forM_ = flip m_mapM_ - -m_concatMap :: Generator c => (Elem c -> [b]) -> c -> [b] -m_concatMap = mapReduce - -m_and :: (Generator c, Elem c ~ Bool) => c -> Bool -m_and = getAll . reduce - -m_or :: (Generator c, Elem c ~ Bool) => c -> Bool -m_or = getAny . reduce - -m_any :: Generator c => (Elem c -> Bool) -> c -> Bool -m_any f = getAny . mapReduce f - -m_all :: Generator c => (Elem c -> Bool) -> c -> Bool -m_all f = getAll . mapReduce f - hunk ./Data/Monoid/Reducer.hs 6 + , foldMapReduce hunk ./Data/Monoid/Reducer.hs 10 +import Data.Foldable hunk ./Data/Monoid/Reducer.hs 22 +foldMapReduce :: (Foldable f, e `Reducer` m) => (a -> e) -> f a -> m +foldMapReduce f = foldMap (unit . f) + hunk ./dist/doc/html/monoids/Data-Monoid-Generator.html 382 ->
m_traverse_ :: (Generator c, Applicative f) => (Elem c -> f b) -> c -> f ()Source
m_for_ :: (Generator c, Applicative f) => c -> (Elem c -> f b) -> f ()Source
m_mapM_ :: (Generator c, Monad m) => (Elem c -> m b) -> c -> m ()Source
m_forM_ :: (Generator c, Monad m) => c -> (Elem c -> m b) -> m ()Source
m_concatMap :: Generator c => (Elem c -> [b]) -> c -> [b]Source
m_and :: (Generator c, Elem c ~ Bool) => c -> BoolSource
m_or :: (Generator c, Elem c ~ Bool) => c -> BoolSource
m_any :: Generator c => (Elem c -> Bool) -> c -> BoolSource
m_all :: Generator c => (Elem c -> Bool) -> c -> BoolSource
foldMapReduce :: (Foldable f, Reducer e m) => (a -> e) -> f a -> mSource
Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsallData.Monoid.Generator.MethodsandData.Monoid.Generator.MethodsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsanyData.Monoid.Generator.MethodsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsconcatMapData.Monoid.Generator.MethodsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.Words, Data.Monoid.Generator.MethodselemData.Monoid.Generator.MethodsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsfoldMapReduceData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Lexical.WordsforM_Data.Monoid.Generator.Methodsfor_Data.Monoid.Generator.Methods, Data.Monoid.Generator.MethodsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.Words, Data.Monoid.Generator.MethodsmapM_Data.Monoid.Generator.MethodsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.FingerTree, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.FingerTree, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.Words, Data.Monoid.Generator.Methods, Data.Monoid.Generator.MethodsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.FingerTree, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.FingerTree, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.FingerTree, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.FingerTree, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.Wordsm_allData.Monoid.Generatorm_andData.Monoid.Generatorm_anyData.Monoid.Generatorm_concatMapData.Monoid.Generatorm_forM_Data.Monoid.Generatorm_for_notElemData.Monoid.Generatorm_mapM_Data.Monoid.GeneratorData.Monoid.Generator.Methodsm_ornullData.Monoid.GeneratorData.Monoid.FingerTreem_traverse_orData.Monoid.GeneratorData.Monoid.Generator.MethodsnullData.Monoid.FingerTreeData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsproductData.Monoid.Generator.Methods, Data.Monoid.Generator.MethodsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Lexical.WordsData.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Generator, Data.Monoid.Generator.Methods, Data.Monoid.Lexical.WordssumData.Monoid.Generator.Methodstraverse_Data.Monoid.Generator.Methodsshow/hide
Data.Monoid.Generator.Methods
show/hideshow/hide
show/hideshow/hide
show/hideshow/hide
,m_traverse_ -,m_for_ -,m_mapM_ -,m_forM_ -,m_concatMap -,m_and -,m_or -,m_any -,m_all -)where - -importData.Word(Word8) -importData.Text(Text) -importData.Foldable(fold,foldMap) -importqualifiedData.TextasText -importqualifiedData.ByteStringasStrict -importqualifiedData.ByteString.LazyasLazy -importControl.Parallel.Strategies -importData.Monoid -importData.Monoid.Applicative -importData.Monoid.Monad - --- minimal definition mapReduce or affixMapReduce -classGeneratorcwhere -typeElemc::* -mapReduce::(e`Reducer`m)=>(Elemc->e)->c->m -mapTo::(e`Reducer`m)=>(Elemc->e)->m->c->m -mapFrom::(e`Reducer`m)=>(Elemc->e)->c->m->m - -mapReducef=mapTofmempty -mapTofm=mappendm.mapReducef -mapFromf=mappend.mapReducef - -instanceGeneratorStrict.ByteStringwhere -typeElemStrict.ByteString=Word8 -mapTof=Strict.foldl'(\a->snoca.f) - -instanceGeneratorLazy.ByteStringwhere -typeElemLazy.ByteString=ElemStrict.ByteString -mapReducef=fold.parMaprwhnf(mapReducef).Lazy.toChunks - -instanceGeneratorTextwhere -typeElemText=Char -mapTof=Text.foldl'(\a->snoca.f) - -instanceGenerator[c]where -typeElem[c]=c -mapReducef=foldMap(unit.f) - -{-# SPECIALIZE reduce :: (Word8 `Reducer` m) => Strict.ByteString -> m #-} -{-# SPECIALIZE reduce :: (Word8 `Reducer` m) => Lazy.ByteString -> m #-} -{-# SPECIALIZE reduce :: (Char `Reducer` m) => Text -> m #-} --- These aren't happy, but should work -{-- RULES "reduce/fold" reduce = fold --} -{-- RULES "mapReduce/foldMap" mapReduce = foldMap --} -reduce::(Generatorc,Elemc`Reducer`m)=>c->m -reduce=mapReduceid - -m_traverse_::(Generatorc,Applicativef)=>(Elemc->fb)->c->f() -m_traverse_f=getTraversal.mapReducef - -m_for_::(Generatorc,Applicativef)=>c->(Elemc->fb)->f() -m_for_=flipm_traverse_ - -m_mapM_::(Generatorc,Monadm)=>(Elemc->mb)->c->m() -m_mapM_f=getAction.mapReducef - -m_forM_::(Generatorc,Monadm)=>c->(Elemc->mb)->m() -m_forM_=flipm_mapM_ - -m_concatMap::Generatorc=>(Elemc->[b])->c->[b] -m_concatMap=mapReduce - -m_and::(Generatorc,Elemc~Bool)=>c->Bool -m_and=getAll.reduce - -m_or::(Generatorc,Elemc~Bool)=>c->Bool -m_or=getAny.reduce - -m_any::Generatorc=>(Elemc->Bool)->c->Bool -m_anyf=getAny.mapReducef - -m_all::Generatorc=>(Elemc->Bool)->c->Bool -m_allf=getAll.mapReducef +)where + +importData.Word(Word8) +importData.Text(Text) +importData.Foldable(fold,foldMap) +importqualifiedData.TextasText +importqualifiedData.ByteStringasStrict +importqualifiedData.ByteString.LazyasLazy +importControl.Parallel.Strategies +importData.Monoid +importData.Monoid.Applicative +importData.Monoid.Monad + +-- minimal definition mapReduce or affixMapReduce +classGeneratorcwhere +typeElemc::* +mapReduce::(e`Reducer`m)=>(Elemc->e)->c->m +mapTo::(e`Reducer`m)=>(Elemc->e)->m->c->m +mapFrom::(e`Reducer`m)=>(Elemc->e)->c->m->m + +mapReducef=mapTofmempty +mapTofm=mappendm.mapReducef +mapFromf=mappend.mapReducef + +instanceGeneratorStrict.ByteStringwhere +typeElemStrict.ByteString=Word8 +mapTof=Strict.foldl'(\a->snoca.f) + +instanceGeneratorLazy.ByteStringwhere +typeElemLazy.ByteString=ElemStrict.ByteString +mapReducef=fold.parMaprwhnf(mapReducef).Lazy.toChunks + +instanceGeneratorTextwhere +typeElemText=Char +mapTof=Text.foldl'(\a->snoca.f) + +instanceGenerator[c]where +typeElem[c]=c +mapReducef=foldMap(unit.f) + +{-# SPECIALIZE reduce :: (Word8 `Reducer` m) => Strict.ByteString -> m #-} +{-# SPECIALIZE reduce :: (Word8 `Reducer` m) => Lazy.ByteString -> m #-} +{-# SPECIALIZE reduce :: (Char `Reducer` m) => Text -> m #-} +-- These aren't happy, but should work +{-- RULES "reduce/fold" reduce = fold --} +{-- RULES "mapReduce/foldMap" mapReduce = foldMap --} +reduce::(Generatorc,Elemc`Reducer`m)=>c->m +reduce=mapReduceid hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 14 -)where - -importData.Monoid - --- minimal definition unit or snoc -classMonoidm=>Reducercmwhere -unit::c->m -snoc::m->c->m -cons::c->m->m - -unit=snocmempty -snocm=mappendm.unit -cons=mappend.unit - -instance(Reducercm,Reducercn)=>Reducerc(m,n)where -unitx=(unitx,unitx) -(m,n)`snoc`x=(m`snoc`x,n`snoc`x) -x`cons`(m,n)=(x`cons`m,x`cons`n) +,foldMapReduce +)where + +importData.Monoid +importData.Foldable + +-- minimal definition unit or snoc +classMonoidm=>Reducercmwhere +unit::c->m +snoc::m->c->m +cons::c->m->m + +unit=snocmempty +snocm=mappendm.unit +cons=mappend.unit + +foldMapReduce::(Foldablef,e`Reducer`m)=>(a->e)->fa->m +foldMapReducef=foldMap(unit.f) hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 33 -instance(Reducercm,Reducercn,Reducerco)=>Reducerc(m,n,o)where -unitx=(unitx,unitx,unitx) -(m,n,o)`snoc`x=(m`snoc`x,n`snoc`x,o`snoc`x) -x`cons`(m,n,o)=(x`cons`m,x`cons`n,x`cons`o) +instance(Reducercm,Reducercn)=>Reducerc(m,n)where +unitx=(unitx,unitx) +(m,n)`snoc`x=(m`snoc`x,n`snoc`x) +x`cons`(m,n)=(x`cons`m,x`cons`n) hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 38 -instance(Reducercm,Reducercn,Reducerco,Reducercp)=>Reducerc(m,n,o,p)where -unitx=(unitx,unitx,unitx,unitx) -(m,n,o,p)`snoc`x=(m`snoc`x,n`snoc`x,o`snoc`x,p`snoc`x) -x`cons`(m,n,o,p)=(x`cons`m,x`cons`n,x`cons`o,x`cons`p) +instance(Reducercm,Reducercn,Reducerco)=>Reducerc(m,n,o)where +unitx=(unitx,unitx,unitx) +(m,n,o)`snoc`x=(m`snoc`x,n`snoc`x,o`snoc`x) +x`cons`(m,n,o)=(x`cons`m,x`cons`n,x`cons`o) hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 43 -instanceReducerc[c]where -unit=return -cons=(:) -xs`snoc`x=xs++[x] +instance(Reducercm,Reducercn,Reducerco,Reducercp)=>Reducerc(m,n,o,p)where +unitx=(unitx,unitx,unitx,unitx) +(m,n,o,p)`snoc`x=(m`snoc`x,n`snoc`x,o`snoc`x,p`snoc`x) +x`cons`(m,n,o,p)=(x`cons`m,x`cons`n,x`cons`o,x`cons`p) hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 48 -instanceReducer[c][c]where -unit=id -snoc=mappend -cons=mappend +instanceReducerc[c]where +unit=return +cons=(:) +xs`snoc`x=xs++[x] hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 53 -instanceReducerc()where -unit_=() -_`snoc`_=() -_`cons`_=() +instanceReducer[c][c]where +unit=id +snoc=mappend +cons=mappend hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 58 -instanceReducerBoolAnywhere -unit=Any - -instanceReducerBoolAllwhere -unit=All - -instanceReducer(a->a)(Endoa)where -unit=Endo - -instanceMonoida=>Reducera(Duala)where -unit=Dual - -instanceNuma=>Reducera(Suma)where -unit=Sum - -instanceNuma=>Reducera(Producta)where -unit=Product - -instanceReducer(Maybea)(Firsta)where -unit=First - -instanceReducera(Firsta)where -unit=First.Just - -instanceReducer(Maybea)(Lasta)where -unit=Last - -instanceReducera(Lasta)where -unit=Last.Just +instanceReducerc()where +unit_=() +_`snoc`_=() +_`cons`_=() + +instanceReducerBoolAnywhere +unit=Any + +instanceReducerBoolAllwhere +unit=All + +instanceReducer(a->a)(Endoa)where +unit=Endo + +instanceMonoida=>Reducera(Duala)where +unit=Dual + +instanceNuma=>Reducera(Suma)where +unit=Sum + +instanceNuma=>Reducera(Producta)where +unit=Product + +instanceReducer(Maybea)(Firsta)where +unit=First + +instanceReducera(Firsta)where +unit=First.Just + +instanceReducer(Maybea)(Lasta)where +unit=Last + +instanceReducera(Lasta)where +unit=Last.Just hunk ./monoids.cabal 20 + Data.Monoid.Generator.Methods }