| Safe Haskell | None | 
|---|---|
| Language | Haskell98 | 
Data.Generics.Geniplate
- genUniverseBi :: Name -> Q Exp
 - genUniverseBi' :: TypeQ -> Q Exp
 - genUniverseBiT :: [TypeQ] -> Name -> Q Exp
 - genUniverseBiT' :: [TypeQ] -> TypeQ -> Q Exp
 - genTransformBi :: Name -> Q Exp
 - genTransformBi' :: TypeQ -> Q Exp
 - genTransformBiT :: [TypeQ] -> Name -> Q Exp
 - genTransformBiT' :: [TypeQ] -> TypeQ -> Q Exp
 - genTransformBiM :: Name -> Q Exp
 - genTransformBiM' :: TypeQ -> Q Exp
 - genTransformBiMT :: [TypeQ] -> Name -> Q Exp
 - genTransformBiMT' :: [TypeQ] -> TypeQ -> Q Exp
 - class UniverseBi s t where
 - universe :: UniverseBi a a => a -> [a]
 - instanceUniverseBi :: TypeQ -> Q [Dec]
 - instanceUniverseBiT :: [TypeQ] -> TypeQ -> Q [Dec]
 - class TransformBi s t where
 - transform :: TransformBi a a => (a -> a) -> a -> a
 - instanceTransformBi :: TypeQ -> Q [Dec]
 - instanceTransformBiT :: [TypeQ] -> TypeQ -> Q [Dec]
 - class TransformBiM m s t where
 - transformM :: TransformBiM m a a => (a -> m a) -> a -> m a
 - instanceTransformBiM :: TypeQ -> TypeQ -> Q [Dec]
 - instanceTransformBiMT :: [TypeQ] -> TypeQ -> TypeQ -> Q [Dec]
 - class DescendBiM m s t where
 - instanceDescendBiM :: TypeQ -> TypeQ -> Q [Dec]
 - instanceDescendBiMT :: [TypeQ] -> TypeQ -> TypeQ -> Q [Dec]
 - class DescendM m t where
 - descend :: DescendM Identity a => (a -> a) -> a -> a
 - instanceDescendM :: TypeQ -> TypeQ -> Q [Dec]
 - instanceDescendMT :: [TypeQ] -> TypeQ -> TypeQ -> Q [Dec]
 
Documentation
Generate TH code for a function that extracts all subparts of a certain type.
 The argument to genUniverseBi is a name with the type S -> [T], for some types
 S and T.  The function will extract all subparts of type T from S.
Arguments
| :: [TypeQ] | types not touched by   | 
| -> Name | function of type   | 
| -> Q Exp | 
Same as genUniverseBi, but does not look inside any types mention in the
 list of types.
Generate TH code for a function that transforms all subparts of a certain type.
 The argument to genTransformBi is a name with the type (S->S) -> T -> T, for some types
 S and T.  The function will transform all subparts of type S inside T using the given function.
genTransformBiT :: [TypeQ] -> Name -> Q Exp Source #
Same as genTransformBi, but does not look inside any types mention in the
 list of types.
class UniverseBi s t where Source #
Class for universeBi.
Minimal complete definition
Methods
universeBi :: s -> [t] Source #
universe :: UniverseBi a a => a -> [a] Source #
Create a UniverseBi instance.
 The TypeQ argument should be a pair; the source and target types for universeBi.
Arguments
| :: [TypeQ] | types not touched by   | 
| -> TypeQ | (source, target) types  | 
| -> Q [Dec] | 
Create a UniverseBi instance with certain types being abstract.
 The TypeQ argument should be a pair; the source and target types for universeBi.
class TransformBi s t where Source #
Class for transformBi.
Minimal complete definition
Methods
transformBi :: (s -> s) -> t -> t Source #
transform :: TransformBi a a => (a -> a) -> a -> a Source #
Create a TransformBi instance.
 The TypeQ argument should be a pair; the inner and outer types for transformBi.
Arguments
| :: [TypeQ] | types not touched by   | 
| -> TypeQ | (inner, outer) types  | 
| -> Q [Dec] | 
Create a TransformBi instance with certain types being abstract.
 The TypeQ argument should be a pair; the inner and outer types for transformBi.
class TransformBiM m s t where Source #
Class for transformBiM.
Minimal complete definition
Methods
transformBiM :: (s -> m s) -> t -> m t Source #
transformM :: TransformBiM m a a => (a -> m a) -> a -> m a Source #
instanceTransformBiM :: TypeQ -> TypeQ -> Q [Dec] Source #
Create a TransformBiM instance.
instanceTransformBiMT :: [TypeQ] -> TypeQ -> TypeQ -> Q [Dec] Source #
Create a TransformBiM instance with certain types being abstract.
class DescendBiM m s t where Source #
Class for descendBiM.
Minimal complete definition
Methods
descendBiM :: (s -> m s) -> t -> m t Source #
instanceDescendBiM :: TypeQ -> TypeQ -> Q [Dec] Source #
Create a DescendBiM instance.
instanceDescendBiMT :: [TypeQ] -> TypeQ -> TypeQ -> Q [Dec] Source #
Create a DescendBiM instance with certain types being abstract.
instanceDescendM :: TypeQ -> TypeQ -> Q [Dec] Source #
Create a DescendBiM instance.
instanceDescendMT :: [TypeQ] -> TypeQ -> TypeQ -> Q [Dec] Source #
Create a DescendBiM instance with certain types being abstract.