geniplate-0.3.0.0: Use template Haskell to generate Uniplate-like functions.

Data.Generics.Geniplate

Synopsis

Documentation

universeBi :: Name -> Q ExpSource

Generate TH code for a function that extracts all subparts of a certain type. The argument to universeBi 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.

universeBiT :: [TypeQ] -> Name -> Q ExpSource

Same as universeBi, but does not look inside any types mention in the list of types.

transformBi :: Name -> Q ExpSource

Generate TH code for a function that transforms all subparts of a certain type. The argument to transformBi 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.

transformBiT :: [TypeQ] -> Name -> Q ExpSource

Same as transformBi, but does not look inside any types mention in the list of types.