Hi all,

I am implementing something which needs to make use of generic rewriting. I tried implementing a rewriting system of my own, using Uniplate's transform and rewrite methods, and currently I am trying to use the guarded-rewriting package. (whose maintainer is generics@haskell.org)

I am reading the paper linked from hackage, A Lightweight Approach to Datatype-Generic Rewriting, and I must say I quite liked the approach in most places. Especially not using simple pattern matching in rewrite rules is an important step, to my understanding. However I do have some questions regarding the toolchain:

- There is another package, rewriting, which links to the same paper. What is the relationship between these two implementations? Is one of them obsolete?
- In the paper, it's mentioned that the Representable instances might be generated automatically. I have quite a complex term structure (and subject to changes), so I wonder if you are planning to work towards achieving this. If not, can you give me some pointers to automate this process myself?
- Is it possible to write "nice" show functions for rewrite rules, namely the Rule data type.


Thanks a lot for this work,

Best,

--
Ozgur Akgun
PhD Student
University of St Andrews