
Data.Generics.Strafunski.StrategyLib.PathTheme  Portability  portable  Stability  experimental  Maintainer  Ralf Laemmel, Joost Visser 





Description 
This module is part of StrategyLib, a library of functional strategy
combinators, including combinators for generic traversal. In this module, we
define path combinator to constrain selection and transformation of nodes or
subtrees by path conditions.


Synopsis 




Below


Strictly below


belowS :: (MonadPlus m, Strategy s m, StrategyPlus s m) => s m > TU () m > s m 
Select or transform a node below a node where a condition holds.
We find the topmost node which admits selection or transformation
below the topmost node which meets the condition. Thus, the
distance between guard and application node is minimized.


Below or at the same height


beloweqS :: (MonadPlus m, Strategy s m, StrategyPlus s m) => s m > TU () m > s m 
Select or transform a node below or at a node where a condition holds.


Typespecialised versions


belowTP :: MonadPlus m => TP m > TU () m > TP m 
Apply a transformation strictly below a node where a condition holds.


beloweqTP :: MonadPlus m => TP m > TU () m > TP m 
Apply a transformation below or at a node where a condition holds.


Above


Strictly above


aboveS :: (MonadPlus m, Strategy s m, StrategyPlus s m) => s m > TU () m > s m 
Select or transform a node above a node where a condition holds. The
distance between guard and application node is minimized.


Above or at the same height


aboveeqS :: (MonadPlus m, Strategy s m, StrategyPlus s m) => s m > TU () m > s m 
Select or transform a node above or at a node where a condition holds.


Typespecialised versions


aboveTP :: MonadPlus m => TP m > TU () m > TP m 
Apply a transformation strictly above a node where a condition holds.


aboveeqTP :: MonadPlus m => TP m > TU () m > TP m 
Apply a transformation above or at a node where a condition holds.


Produced by Haddock version 0.8 