| Copyright | (c) Edward Kmett 2009 |
|---|---|
| License | BSD-style |
| Maintainer | ekmett@gmail.com |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Data.Semigroup.Generator
Contents
Description
A Generator1 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.
Generator1 is to Generator as Foldable1 is to Foldable.
Synopsis
- class Generator c => Generator1 c where
- reduce1 :: (Generator1 c, Reducer (Elem c) m) => c -> m
- mapReduceWith1 :: (Generator1 c, Reducer e m) => (m -> n) -> (Elem c -> e) -> c -> n
- reduceWith1 :: (Generator1 c, Reducer (Elem c) m) => (m -> n) -> c -> n
Generators
class Generator c => Generator1 c where Source #
minimal definition mapReduce1 or mapTo1
Minimal complete definition
Methods
mapReduce1 :: Reducer e m => (Elem c -> e) -> c -> m Source #
mapTo1 :: Reducer e m => (Elem c -> e) -> m -> c -> m Source #
mapFrom1 :: Reducer e m => (Elem c -> e) -> c -> m -> m Source #
Instances
| Generator1 (NonEmpty e) Source # | |
Combinators
mapReduceWith1 :: (Generator1 c, Reducer e m) => (m -> n) -> (Elem c -> e) -> c -> n Source #
reduceWith1 :: (Generator1 c, Reducer (Elem c) m) => (m -> n) -> c -> n Source #