[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
->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.Wordsall | Data.Monoid.Generator.Methods | and | Data.Monoid.Generator.Methods |
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.Words
any | Data.Monoid.Generator.Methods | 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.WordsconcatMapData.Monoid.Generator.Methods |
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.Words | 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.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.Methods
elem | 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.Words | 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.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.Words |
forM_ | Data.Monoid.Generator.Methods |
for_ | 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.Methods
mapM_ | 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.Words | Data.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.Generator |
m_and | Data.Monoid.Generator |
m_any | Data.Monoid.Generator |
m_concatMap | Data.Monoid.Generator |
m_forM_ | Data.Monoid.Generator |
m_for_ | notElemData.Monoid.Generator
m_mapM_ | Data.Monoid.GeneratorData.Monoid.Generator.Methodsm_or | nullData.Monoid.GeneratorData.Monoid.FingerTreem_traverse_orData.Monoid.GeneratorData.Monoid.Generator.Methodsnull | Data.Monoid.FingerTree |
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.Words
product | 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.Words
sum | Data.Monoid.Generator.Methods |
traverse_ | Data.Monoid.Generator.Methods |
|  | | 





, m_traverse_
- , m_for_
- , m_mapM_
- , m_forM_
- , m_concatMap
- , m_and
- , m_or
- , m_any
- , m_all
- ) where
-
-import Data.Word (Word8)
-import Data.Text (Text)
-import Data.Foldable (fold,foldMap)
-import qualified Data.Text as Text
-import qualified Data.ByteString as Strict
-import qualified Data.ByteString.Lazy as Lazy
-import Control.Parallel.Strategies
-import Data.Monoid
-import Data.Monoid.Applicative
-import Data.Monoid.Monad
-
-
-class Generator c where
- type Elem c :: *
- mapReduce :: (e `Reducer` m) => (Elem c -> e) -> c -> m
- mapTo :: (e `Reducer` m) => (Elem c -> e) -> m -> c -> m
- mapFrom :: (e `Reducer` m) => (Elem c -> e) -> c -> m -> m
-
- mapReduce f = mapTo f mempty
- mapTo f m = mappend m . mapReduce f
- mapFrom f = mappend . mapReduce f
-
-instance Generator Strict.ByteString where
- type Elem Strict.ByteString = Word8
- mapTo f = Strict.foldl' (\a -> snoc a . f)
-
-instance Generator Lazy.ByteString where
- type Elem Lazy.ByteString = Elem Strict.ByteString
- mapReduce f = fold . parMap rwhnf (mapReduce f) . Lazy.toChunks
-
-instance Generator Text where
- type Elem Text = Char
- mapTo f = Text.foldl' (\a -> snoc a . f)
-
-instance Generator [c] where
- type Elem [c] = c
- mapReduce f = foldMap (unit . f)
-
-
-
-
-
-
-
-reduce :: (Generator c, Elem c `Reducer` m) => c -> m
-reduce = mapReduce id
-
-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
+ ) where
+
+import Data.Word (Word8)
+import Data.Text (Text)
+import Data.Foldable (fold,foldMap)
+import qualified Data.Text as Text
+import qualified Data.ByteString as Strict
+import qualified Data.ByteString.Lazy as Lazy
+import Control.Parallel.Strategies
+import Data.Monoid
+import Data.Monoid.Applicative
+import Data.Monoid.Monad
+
+
+class Generator c where
+ type Elem c :: *
+ mapReduce :: (e `Reducer` m) => (Elem c -> e) -> c -> m
+ mapTo :: (e `Reducer` m) => (Elem c -> e) -> m -> c -> m
+ mapFrom :: (e `Reducer` m) => (Elem c -> e) -> c -> m -> m
+
+ mapReduce f = mapTo f mempty
+ mapTo f m = mappend m . mapReduce f
+ mapFrom f = mappend . mapReduce f
+
+instance Generator Strict.ByteString where
+ type Elem Strict.ByteString = Word8
+ mapTo f = Strict.foldl' (\a -> snoc a . f)
+
+instance Generator Lazy.ByteString where
+ type Elem Lazy.ByteString = Elem Strict.ByteString
+ mapReduce f = fold . parMap rwhnf (mapReduce f) . Lazy.toChunks
+
+instance Generator Text where
+ type Elem Text = Char
+ mapTo f = Text.foldl' (\a -> snoc a . f)
+
+instance Generator [c] where
+ type Elem [c] = c
+ mapReduce f = foldMap (unit . f)
+
+
+
+
+
+
+
+reduce :: (Generator c, Elem c `Reducer` m) => c -> m
+reduce = mapReduce id
hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 14
- ) where
-
-import Data.Monoid
-
-
-class Monoid m => Reducer c m where
- unit :: c -> m
- snoc :: m -> c -> m
- cons :: c -> m -> m
-
- unit = snoc mempty
- snoc m = mappend m . unit
- cons = mappend . unit
-
-instance (Reducer c m, Reducer c n) => Reducer c (m,n) where
- unit x = (unit x,unit x)
- (m,n) `snoc` x = (m `snoc` x, n `snoc` x)
- x `cons` (m,n) = (x `cons` m, x `cons` n)
+ , foldMapReduce
+ ) where
+
+import Data.Monoid
+import Data.Foldable
+
+
+class Monoid m => Reducer c m where
+ unit :: c -> m
+ snoc :: m -> c -> m
+ cons :: c -> m -> m
+
+ unit = snoc mempty
+ snoc m = mappend m . unit
+ cons = mappend . unit
+
+foldMapReduce :: (Foldable f, e `Reducer` m) => (a -> e) -> f a -> m
+foldMapReduce f = foldMap (unit . f)
hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 33
-instance (Reducer c m, Reducer c n, Reducer c o) => Reducer c (m,n,o) where
- unit x = (unit x,unit x, unit x)
- (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 (Reducer c m, Reducer c n) => Reducer c (m,n) where
+ unit x = (unit x,unit x)
+ (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 (Reducer c m, Reducer c n, Reducer c o, Reducer c p) => Reducer c (m,n,o,p) where
- unit x = (unit x,unit x, unit x, unit x)
- (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 (Reducer c m, Reducer c n, Reducer c o) => Reducer c (m,n,o) where
+ unit x = (unit x,unit x, unit x)
+ (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
-instance Reducer c [c] where
- unit = return
- cons = (:)
- xs `snoc` x = xs ++ [x]
+instance (Reducer c m, Reducer c n, Reducer c o, Reducer c p) => Reducer c (m,n,o,p) where
+ unit x = (unit x,unit x, unit x, unit x)
+ (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
-instance Reducer [c] [c] where
- unit = id
- snoc = mappend
- cons = mappend
+instance Reducer c [c] where
+ unit = return
+ cons = (:)
+ xs `snoc` x = xs ++ [x]
hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 53
-instance Reducer c () where
- unit _ = ()
- _ `snoc` _ = ()
- _ `cons` _ = ()
+instance Reducer [c] [c] where
+ unit = id
+ snoc = mappend
+ cons = mappend
hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 58
-instance Reducer Bool Any where
- unit = Any
-
-instance Reducer Bool All where
- unit = All
-
-instance Reducer (a -> a) (Endo a) where
- unit = Endo
-
-instance Monoid a => Reducer a (Dual a) where
- unit = Dual
-
-instance Num a => Reducer a (Sum a) where
- unit = Sum
-
-instance Num a => Reducer a (Product a) where
- unit = Product
-
-instance Reducer (Maybe a) (First a) where
- unit = First
-
-instance Reducer a (First a) where
- unit = First . Just
-
-instance Reducer (Maybe a) (Last a) where
- unit = Last
-
-instance Reducer a (Last a) where
- unit = Last . Just
+instance Reducer c () where
+ unit _ = ()
+ _ `snoc` _ = ()
+ _ `cons` _ = ()
+
+instance Reducer Bool Any where
+ unit = Any
+
+instance Reducer Bool All where
+ unit = All
+
+instance Reducer (a -> a) (Endo a) where
+ unit = Endo
+
+instance Monoid a => Reducer a (Dual a) where
+ unit = Dual
+
+instance Num a => Reducer a (Sum a) where
+ unit = Sum
+
+instance Num a => Reducer a (Product a) where
+ unit = Product
+
+instance Reducer (Maybe a) (First a) where
+ unit = First
+
+instance Reducer a (First a) where
+ unit = First . Just
+
+instance Reducer (Maybe a) (Last a) where
+ unit = Last
+
+instance Reducer a (Last a) where
+ unit = Last . Just
hunk ./monoids.cabal 20
+ Data.Monoid.Generator.Methods
}
|