| |||||||||||
| |||||||||||
| |||||||||||
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 | |||||||||||
| |||||||||||
The idiom of multi-parameter traversal | |||||||||||
tfoldl :: (forall a b . Data a => c (a -> b) -> c a -> c b) -> (forall g . g -> c g) -> GenericQ (Generic c) -> GenericQ (Generic c) | |||||||||||
Twin mapping combinators | |||||||||||
tmapT :: GenericQ GenericT -> GenericQ GenericT | |||||||||||
tmapQl :: (r -> r -> r) -> r -> GenericQ (GenericQ r) -> GenericQ (GenericQ r) | |||||||||||
tmapM :: Monad m => GenericQ (GenericM m) -> GenericQ (GenericM m) | |||||||||||
Prime examples of twin traversal | |||||||||||
geq :: Data a => a -> a -> Bool | |||||||||||
Generic equality: an alternative to "deriving Eq" | |||||||||||
gzip :: (forall a b . (Data a, Data b) => a -> b -> Maybe b) -> forall a b . (Data a, Data b) => a -> b -> Maybe b | |||||||||||
Generic zip controlled by a function with type-specific branches | |||||||||||
Produced by Haddock version 0.6 |