
Data.Generics.Schemes  Portability  nonportable  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
frequently used generic traversal schemes.


Synopsis 



Documentation 

everywhere :: (forall a . Data a => a > a) > forall a . Data a => a > a 
Apply a transformation everywhere in bottomup manner 

everywhere' :: (forall a . Data a => a > a) > forall a . Data a => a > a 
Apply a transformation everywhere in topdown manner 

everywhereBut :: GenericQ Bool > GenericT > GenericT 
Variation on everywhere with an extra stop condition 

everywhereM :: Monad m => GenericM m > GenericM m 
Monadic variation on everywhere 

somewhere :: MonadPlus m => GenericM m > GenericM m 
Apply a monadic transformation at least somewhere 

everything :: (r > r > r) > GenericQ r > GenericQ r 
Summarise all nodes in topdown, lefttoright order 

listify :: Typeable r => (r > Bool) > GenericQ [r] 
Get a list of all entities that meet a predicate 

something :: GenericQ (Maybe u) > GenericQ (Maybe u) 
Look up a subterm by means of a maybetyped filter 

synthesize :: s > (s > s > s) > GenericQ (s > s) > GenericQ s 
Bottomup synthesis of a data structure;
1st argument z is the initial element for the synthesis;
2nd argument o is for reduction of results from subterms;
3rd argument f updates the sythesised data according to the given term


Produced by Haddock version 0.6 