|
| Data.Generics.Twins | | Portability | non-portable (local universal quantification) | | Stability | experimental | | Maintainer | libraries@haskell.org |
|
|
|
|
|
| Description |
| "Scrap your boilerplate" --- Generic programming in Haskell
See http://www.cs.vu.nl/boilerplate/. The present module
provides support for multi-parameter traversal, which is also
demonstrated with generic operations like equality.
|
|
| Synopsis |
|
| gfoldlAccum :: Data d => (forall d r . Data d => a -> c (d -> r) -> d -> (a, c r)) -> (forall g . a -> g -> (a, c g)) -> a -> d -> (a, c d) | | | gmapAccumT :: Data d => (forall d . Data d => a -> d -> (a, d)) -> a -> d -> (a, d) | | | gmapAccumM :: (Data d, Monad m) => (forall d . Data d => a -> d -> (a, m d)) -> a -> d -> (a, m d) | | | gmapAccumQl :: Data d => (r -> r' -> r) -> r -> (forall d . Data d => a -> d -> (a, r')) -> a -> d -> (a, r) | | | gmapAccumQr :: Data d => (r' -> r -> r) -> r -> (forall d . Data d => a -> d -> (a, r')) -> a -> d -> (a, r) | | | gmapAccumQ :: Data d => (forall d . Data d => a -> d -> (a, q)) -> a -> d -> (a, [q]) | | | gzipWithT :: GenericQ GenericT -> GenericQ GenericT | | | gzipWithM :: Monad m => GenericQ (GenericM m) -> GenericQ (GenericM m) | | | gzipWithQ :: GenericQ (GenericQ r) -> GenericQ (GenericQ [r]) | | | geq :: Data a => a -> a -> Bool | | | gzip :: GenericQ (GenericM Maybe) -> GenericQ (GenericM Maybe) |
|
|
|
| Generic folds and maps that also accumulate
|
|
| gfoldlAccum :: Data d => (forall d r . Data d => a -> c (d -> r) -> d -> (a, c r)) -> (forall g . a -> g -> (a, c g)) -> a -> d -> (a, c d) |
| gfoldl with accumulation
|
|
| gmapAccumT :: Data d => (forall d . Data d => a -> d -> (a, d)) -> a -> d -> (a, d) |
| gmapT with accumulation
|
|
| gmapAccumM :: (Data d, Monad m) => (forall d . Data d => a -> d -> (a, m d)) -> a -> d -> (a, m d) |
| gmapM with accumulation
|
|
| gmapAccumQl :: Data d => (r -> r' -> r) -> r -> (forall d . Data d => a -> d -> (a, r')) -> a -> d -> (a, r) |
| gmapQl with accumulation
|
|
| gmapAccumQr :: Data d => (r' -> r -> r) -> r -> (forall d . Data d => a -> d -> (a, r')) -> a -> d -> (a, r) |
| gmapQr with accumulation
|
|
| gmapAccumQ :: Data d => (forall d . Data d => a -> d -> (a, q)) -> a -> d -> (a, [q]) |
| gmapQ with accumulation
|
|
| Mapping combinators for twin traversal
|
|
| gzipWithT :: GenericQ GenericT -> GenericQ GenericT |
| Twin map for transformation
|
|
| gzipWithM :: Monad m => GenericQ (GenericM m) -> GenericQ (GenericM m) |
| Twin map for monadic transformation
|
|
| gzipWithQ :: GenericQ (GenericQ r) -> GenericQ (GenericQ [r]) |
| Twin map for queries
|
|
| Typical twin traversals
|
|
| geq :: Data a => a -> a -> Bool |
| Generic equality: an alternative to "deriving Eq"
|
|
| gzip :: GenericQ (GenericM Maybe) -> GenericQ (GenericM Maybe) |
| Generic zip controlled by a function with type-specific branches
|
|
| Produced by Haddock version 0.8 |