| Safe Haskell | None | 
|---|
CLaSH.Rewrite.Combinators
Description
Rewriting combinators and traversals
- allR :: forall m. (Functor m, Monad m, Fresh m) => Bool -> Transform m -> Transform m
 - (>->) :: Monad m => Transform m -> Transform m -> Transform m
 - topdownR :: (Fresh m, Functor m, Monad m) => Transform m -> Transform m
 - unsafeTopdownR :: (Fresh m, Functor m, Monad m) => Transform m -> Transform m
 - bottomupR :: (Fresh m, Functor m, Monad m) => Transform m -> Transform m
 - unsafeBottomupR :: (Fresh m, Functor m, Monad m) => Transform m -> Transform m
 - upDownR :: (Functor m, Monad m) => Rewrite m -> Rewrite m
 - unsafeUpDownR :: (Functor m, Monad m) => Rewrite m -> Rewrite m
 - (!->) :: Monad m => Rewrite m -> Rewrite m -> Rewrite m
 - repeatR :: Monad m => Rewrite m -> Rewrite m
 
Documentation
Arguments
| :: forall m . (Functor m, Monad m, Fresh m) | |
| => Bool | Freshen variable references in abstracted terms  | 
| -> Transform m | The transformation to apply to the subtrees  | 
| -> Transform m | 
Apply a transformation on the subtrees of an term
(>->) :: Monad m => Transform m -> Transform m -> Transform mSource
Apply two transformations in succession
topdownR :: (Fresh m, Functor m, Monad m) => Transform m -> Transform mSource
Apply a transformation in a topdown traversal
unsafeTopdownR :: (Fresh m, Functor m, Monad m) => Transform m -> Transform mSource
Apply a transformation in a topdown traversal. Doesn't freshen bound variables
bottomupR :: (Fresh m, Functor m, Monad m) => Transform m -> Transform mSource
Apply a transformation in a bottomup traversal
unsafeBottomupR :: (Fresh m, Functor m, Monad m) => Transform m -> Transform mSource
Apply a transformation in a bottomup traversal. Doesn't freshen bound variables
upDownR :: (Functor m, Monad m) => Rewrite m -> Rewrite mSource
Apply a transformation in a bottomup traversal, when a transformation succeeds in a certain node, apply the transformation further in a topdown traversal starting at that node.
unsafeUpDownR :: (Functor m, Monad m) => Rewrite m -> Rewrite mSource
Apply a transformation in a bottomup traversal, when a transformation succeeds in a certain node, apply the transformation further in a topdown traversal starting at that node. Doesn't freshen bound variables