[foldMap' filter and find added to Data.Monoid.Generator.Combinators ekmett@gmail.com**20090327000800] { hunk ./Data/Monoid/Generator/Combinators.hs 8 + , foldMap' hunk ./Data/Monoid/Generator/Combinators.hs 18 + , filter hunk ./Data/Monoid/Generator/Combinators.hs 39 +foldMap' :: (Monoid m, Generator c) => (Elem c -> m) -> c -> m +foldMap' f = getSelf . mapReduce f + hunk ./Data/Monoid/Generator/Combinators.hs 43 -concatMap f = getSelf . mapReduce f +concatMap = foldMap' hunk ./Data/Monoid/Generator/Combinators.hs 69 --- foldMap :: Generator c => (Elem c -> m) -> c -> m - --- filter :: (Generator c, Elem c `Reducer` m, m `Reducer` m) => (Elem c -> Bool) -> c -> m --- filter p = mapReduce (\x -> if p x then unit x else mempty) +filter :: (Generator c, Elem c `Reducer` m) => (Elem c -> Bool) -> c -> m +filter p = foldMap' f where + f x | p x = unit x + | otherwise = mempty hunk ./Data/Monoid/Generator/Combinators.hs 74 --- find :: Generator c => (Elem c -> Bool) -> c -> Maybe (Elem c) --- find p = getFirst . filter p +find :: Generator c => (Elem c -> Bool) -> c -> Maybe (Elem c) +find p = getFirst . filter p hunk ./Data/Monoid/Multiplicative.hs 9 -import Data.Monoid.Reducer hunk ./Data/Monoid/Reducer.hs 73 +instance Reducer a (First a) where + unit = First . Just + hunk ./Data/Monoid/Reducer.hs 79 +instance Reducer a (Last a) where + unit = Last . Just + hunk ./dist/doc/html/monoids/Data-Monoid-Generator-Combinators.html 198 +>foldMap' :: (Monoid m, Generator c) => (Elem c -> m) -> c -> mSource
Data.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Categorical, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Ord, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Map, Data.Monoid.IntMap, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.UnitData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Unit, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.SugarData.Monoid.Additive, Data.Monoid.Additive.Sugar, Data.Group, Data.Group.Sugar, Data.Monoid.Reducer, Data.Monoid.Reducer.Char, Data.Monoid.Lexical.SourcePosition, Data.Monoid.Lexical.UTF8.Decoder, Data.Monoid.Reducer.With, Data.Monoid.Generator, Data.Monoid.Reducer.Sugar, Data.Monoid.Lexical.Words, Data.Monoid.Monad, Data.Monoid.Applicative, Data.Monoid.Self, Data.Monoid.Generator.Combinators, Data.Monoid.Multiplicative, Data.Monoid.Multiplicative.Transformers, Data.Monoid.Multiplicative.Sugar, Data.Monoid.Unit,concatMap -,and -,or -,any -,all -,sum -,product -,elem -,notElem -)where - -importPreludehiding(mapM_,any,elem,filter,concatMap,and,or,all,sum,product,notElem) -importData.Monoid.Generator -importData.Monoid.Applicative -importData.Monoid.Monad -importData.Monoid.Self - -traverse_::(Generatorc,Applicativef)=>(Elemc->fb)->c->f() -traverse_f=getTraversal.mapReducef - -for_::(Generatorc,Applicativef)=>c->(Elemc->fb)->f() -for_=fliptraverse_ - -mapM_::(Generatorc,Monadm)=>(Elemc->mb)->c->m() -mapM_f=getAction.mapReducef - -forM_::(Generatorc,Monadm)=>c->(Elemc->mb)->m() -forM_=flipmapM_ - -concatMap::Generatorc=>(Elemc->[b])->c->[b] -concatMapf=getSelf.mapReducef - -and::(Generatorc,Elemc~Bool)=>c->Bool -and=getAll.reduce - -or::(Generatorc,Elemc~Bool)=>c->Bool -or=getAny.reduce - -any::Generatorc=>(Elemc->Bool)->c->Bool -anyf=getAny.mapReducef - -all::Generatorc=>(Elemc->Bool)->c->Bool -allf=getAll.mapReducef - -sum::(Generatorc,Num(Elemc))=>c->Elemc -sum=getSum.reduce - -product::(Generatorc,Num(Elemc))=>c->Elemc -product=getProduct.reduce - -elem::(Generatorc,Eq(Elemc))=>Elemc->c->Bool -elem=any.(==) - -notElem::(Generatorc,Eq(Elemc))=>Elemc->c->Bool -notElemx=not.elemx - --- foldMap :: Generator c => (Elem c -> m) -> c -> m +,foldMap' +,concatMap +,and +,or +,any +,all +,sum +,product +,elem +,notElem +,filter +)where + +importPreludehiding(mapM_,any,elem,filter,concatMap,and,or,all,sum,product,notElem) +importData.Monoid.Generator +importData.Monoid.Applicative +importData.Monoid.Monad +importData.Monoid.Self + +traverse_::(Generatorc,Applicativef)=>(Elemc->fb)->c->f() +traverse_f=getTraversal.mapReducef + +for_::(Generatorc,Applicativef)=>c->(Elemc->fb)->f() +for_=fliptraverse_ + +mapM_::(Generatorc,Monadm)=>(Elemc->mb)->c->m() +mapM_f=getAction.mapReducef + +forM_::(Generatorc,Monadm)=>c->(Elemc->mb)->m() +forM_=flipmapM_ + +foldMap'::(Monoidm,Generatorc)=>(Elemc->m)->c->m +foldMap'f=getSelf.mapReducef + +concatMap::Generatorc=>(Elemc->[b])->c->[b] +concatMap=foldMap' + +and::(Generatorc,Elemc~Bool)=>c->Bool +and=getAll.reduce + +or::(Generatorc,Elemc~Bool)=>c->Bool +or=getAny.reduce + +any::Generatorc=>(Elemc->Bool)->c->Bool +anyf=getAny.mapReducef + +all::Generatorc=>(Elemc->Bool)->c->Bool +allf=getAll.mapReducef + +sum::(Generatorc,Num(Elemc))=>c->Elemc +sum=getSum.reduce + +product::(Generatorc,Num(Elemc))=>c->Elemc +product=getProduct.reduce + +elem::(Generatorc,Eq(Elemc))=>Elemc->c->Bool +elem=any.(==) hunk ./dist/doc/html/monoids/src/Data-Monoid-Generator-Combinators.html 74 --- filter :: (Generator c, Elem c `Reducer` m, m `Reducer` m) => (Elem c -> Bool) -> c -> m --- filter p = mapReduce (\x -> if p x then unit x else mempty) +notElem::(Generatorc,Eq(Elemc))=>Elemc->c->Bool +notElemx=not.elemx hunk ./dist/doc/html/monoids/src/Data-Monoid-Generator-Combinators.html 77 --- find :: Generator c => (Elem c -> Bool) -> c -> Maybe (Elem c) --- find p = getFirst . filter p +filter::(Generatorc,Elemc`Reducer`m)=>(Elemc->Bool)->c->m +filterp=foldMap'fwhere +fx|px=unitx +|otherwise=mempty + +find::Generatorc=>(Elemc->Bool)->c->Maybe(Elemc) +findp=getFirst.filterp hunk ./dist/doc/html/monoids/src/Data-Monoid-Multiplicative.html 17 -importData.Monoid.Reducer -importData.Monoid.Generator -importData.Monoid.Self -importData.Foldable - -classMultiplicativeMonoidmwhere -one::m -times::m->m->m - -class(MultiplicativeMonoidm,Monoidm)=>Seminearringm - -instanceMonoidm=>MultiplicativeMonoid[m]where -one=[mempty] -xss`times`yss=[xs`mappend`ys|xs<-xss,ys<-yss] - -instanceMonoidm=>Seminearring[m] - -instance(Measuredvm,Monoidm)=>MultiplicativeMonoid(FingerTreevm)where -one=singletonmempty -xss`times`yss=getSelf.reduce.fmap(\xs->fmap'(xs`mappend`)yss)$toListxss - -instance(Measuredvm,Monoidm)=>Seminearring(FingerTreevm) +importData.Monoid.Generator +importData.Monoid.Self +importData.Foldable + +classMultiplicativeMonoidmwhere +one::m +times::m->m->m + +class(MultiplicativeMonoidm,Monoidm)=>Seminearringm + +instanceMonoidm=>MultiplicativeMonoid[m]where +one=[mempty] +xss`times`yss=[xs`mappend`ys|xs<-xss,ys<-yss] + +instanceMonoidm=>Seminearring[m] + +instance(Measuredvm,Monoidm)=>MultiplicativeMonoid(FingerTreevm)where +one=singletonmempty +xss`times`yss=getSelf.reduce.fmap(\xs->fmap'(xs`mappend`)yss)$toListxss + +instance(Measuredvm,Monoidm)=>Seminearring(FingerTreevm) hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 81 -instanceReducer(Maybea)(Lasta)where -unit=Last +instanceReducera(Firsta)where +unit=First.Just hunk ./dist/doc/html/monoids/src/Data-Monoid-Reducer.html 84 -instanceMeasuredva=>Monoid(FingerTreeva)where -mempty=empty -mappend=(><) - -instanceMeasuredva=>Reducera(FingerTreeva)where -unit=singleton -cons=(<|) -snoc=(|>) +instanceReducer(Maybea)(Lasta)where +unit=Last + +instanceReducera(Lasta)where +unit=Last.Just + +instanceMeasuredva=>Monoid(FingerTreeva)where +mempty=empty +mappend=(><) + +instanceMeasuredva=>Reducera(FingerTreeva)where +unit=singleton +cons=(<|) +snoc=(|>) }
filter :: (Generator c, Reducer (Elem c) m) => (Elem c -> Bool) -> c -> mSourceReducer a (Last a)
Reducer a (First a)
filter
foldMap'