Yet another haskell term rewriting library