
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 synthesised data according to the given term


gsize :: Data a => a > Int 
Compute size of an arbitrary data structure


glength :: GenericQ Int 
Count the number of immediate subterms of the given term


gdepth :: GenericQ Int 
Determine depth of the given term


gcount :: GenericQ Bool > GenericQ Int 
Determine the number of all suitable nodes in a given term


gnodecount :: GenericQ Int 
Determine the number of all nodes in a given term


gtypecount :: Typeable a => a > GenericQ Int 
Determine the number of nodes of a given type in a given term


gfindtype :: (Data x, Typeable y) => x > Maybe y 
Find (unambiguously) an immediate subterm of a given type


Produced by Haddock version 0.7 