This package gives a generic implementation of higher-order rewriting. The main idea is to use techniques from embedded domain-specific languages to offer an interface which is both safe and syntactically appealing.
Some examples are found in the examples directory. For more information, see "Lightweight Higher-Order Rewriting in Haskell":