Copyright | (C) 2012-2016 University of Twente 2021 QBayLogic B.V. |
---|---|

License | BSD2 (see the file LICENSE) |

Maintainer | QBayLogic B.V. <devops@qbaylogic.com> |

Safe Haskell | None |

Language | Haskell2010 |

Rewriting combinators and traversals

## Synopsis

- allR :: forall m. Monad m => Transform m -> Transform m
- (!->) :: Rewrite m -> Rewrite m -> Rewrite m
- (>-!) :: Rewrite m -> Rewrite m -> Rewrite m
- (>-!->) :: Monad m => Transform m -> Transform m -> Transform m
- (>->) :: Monad m => Transform m -> Transform m -> Transform m
- bottomupR :: Monad m => Transform m -> Transform m
- repeatR :: Rewrite m -> Rewrite m
- topdownR :: Rewrite m -> Rewrite m

# Documentation

Apply a transformation on the subtrees of an term

(!->) :: Rewrite m -> Rewrite m -> Rewrite m infixr 5 Source #

Only apply the second transformation if the first one succeeds.

(>-!) :: Rewrite m -> Rewrite m -> Rewrite m infixr 5 Source #

Only apply the second transformation if the first one fails.

(>-!->) :: Monad m => Transform m -> Transform m -> Transform m infixr 6 Source #

Apply two transformations in succession, and perform a deepseq in between.

(>->) :: Monad m => Transform m -> Transform m -> Transform m infixr 6 Source #

Apply two transformations in succession