{-# LANGUAGE MultiParamTypeClasses #-}{- |
/DEPRECATED/: Use "Data.Generics.Uniplate.Operations" instead.
Requires multi-parameter type classes, so is no longer Haskell 98. These operations
are easier to use and construct than the equivalent "Data.Generics.UniplateStrOn" methods,
but perform the same operation.
It is recommended that instead of importing this module, you import one of the following
modules, to construct instances:
* "Data.Generics.PlateDirect" - does not require overlapping instances, highest performance
but requires /O(n^2)/ instances in the worst case.
* "Data.Generics.PlateTypeable" - requires the "Data.Typeable" class for all data structures.
* "Data.Generics.PlateData" - requires "Data.Generics" and the 'Data' class, which is only
available on GHC, but automatically infers instances.
-}moduleData.Generics.Biplate{- DEPRECATED "Use Data.Generics.Uniplate.Operations instead" -}(moduleData.Generics.UniplateStrOn,moduleData.Generics.Biplate)whereimportData.Generics.UniplateStrOn-- * The Class-- | Children are defined as the top-most items of type to-- /starting at the root/.classUniplateto=>Biplatefromtowherebiplate::BiplateTypefromto-- | Compatibility method, for direct users of the 'biplate' functionbiplateList::Biplatefromto=>from->([to],[to]->from)biplateListx=(c,b.d)where(a,b)=biplatex(c,d)=strStructurea-- * The Operations-- ** QueriesuniverseBi::Biplatefromto=>from->[to]universeBi=universeOnbiplatechildrenBi::Biplatefromto=>from->[to]childrenBi=childrenOnbiplate-- ** TransformationstransformBi::Biplatefromto=>(to->to)->from->fromtransformBi=transformOnbiplatetransformBiM::(Monadm,Biplatefromto)=>(to->mto)->from->mfromtransformBiM=transformOnMbiplaterewriteBi::Biplatefromto=>(to->Maybeto)->from->fromrewriteBi=rewriteOnbiplaterewriteBiM::(Monadm,Biplatefromto)=>(to->m(Maybeto))->from->mfromrewriteBiM=rewriteOnMbiplatedescendBi::Biplatefromto=>(to->to)->from->fromdescendBi=descendOnbiplatedescendBiM::(Monadm,Biplatefromto)=>(to->mto)->from->mfromdescendBiM=descendOnMbiplate-- ** OtherscontextsBi::Biplatefromto=>from->[(to,to->from)]contextsBi=contextsOnbiplateholesBi::Biplatefromto=>from->[(to,to->from)]holesBi=holesOnbiplate