| Copyright | (c) Edward Kmett 2009 | 
|---|---|
| License | BSD-style | 
| Maintainer | ekmett@gmail.com | 
| Stability | experimental | 
| Portability | portable | 
| Safe Haskell | Trustworthy | 
| Language | Haskell98 | 
Data.Generator
Description
A Generator c is a possibly-specialized container, which contains values of
 type Elem c, and which knows how to efficiently apply a Reducer to extract
 an answer.
Since a Generator is not polymorphic in its contents, it is more specialized
 than Data.Foldable.Foldable, and a Reducer may supply efficient left-to-right
 and right-to-left reduction strategies that a Generator may avail itself of.
- class Generator c where
- newtype Keys c = Keys {- getKeys :: c
 
- newtype Values c = Values {- getValues :: c
 
- newtype Char8 c = Char8 {- getChar8 :: c
 
- reduce :: (Generator c, Reducer (Elem c) m, Monoid m) => c -> m
- mapReduceWith :: (Generator c, Reducer e m, Monoid m) => (m -> n) -> (Elem c -> e) -> c -> n
- reduceWith :: (Generator c, Reducer (Elem c) m, Monoid m) => (m -> n) -> c -> n
Generators
class Generator c where Source
Minimal complete definition
Nothing
Methods
mapReduce :: (Reducer e m, Monoid m) => (Elem c -> e) -> c -> m Source
mapTo :: (Reducer e m, Monoid m) => (Elem c -> e) -> m -> c -> m Source
mapFrom :: (Reducer e m, Monoid m) => (Elem c -> e) -> c -> m -> m Source
Instances
| Generator ByteString | |
| Generator ByteString | |
| Generator IntSet | |
| Generator Text | |
| Generator [c] | |
| Generator (IntMap v) | |
| Generator (Set a) | |
| Generator (Seq c) | |
| Generator (NonEmpty c) | |
| Generator (HashSet a) | |
| Generator (Char8 ByteString) | |
| Generator (Char8 ByteString) | |
| Ix i => Generator (Values (Array i e)) | |
| Generator (Values (IntMap v)) | |
| Generator (Values (Map k v)) | |
| Ix i => Generator (Keys (Array i e)) | |
| Generator (Keys (IntMap v)) | |
| Generator (Keys (Map k v)) | |
| Ix i => Generator (Array i e) | |
| Generator (Map k v) | |
| Measured v e => Generator (FingerTree v e) | |
| Generator (HashMap k v) | 
Generator Transformers
a Generator transformer that asks only for the keys of an indexed container
a Generator transformer that asks only for the values contained in an indexed container
a Generator transformer that treats Word8 as Char
 This lets you use a ByteString as a Char source without going through a Monoid transformer like UTF8
Instances
| Generator (Char8 ByteString) | |
| Generator (Char8 ByteString) | |
| type Elem (Char8 ByteString) = Char | |
| type Elem (Char8 ByteString) = Char |