Dear Richy,
My concerns are rather that rooting something as specialized inside the class hierarchy will not be useful enough but open the floodgates for much more specialized ideas and make the code even harder to understand for novices.
Once more: nothing specialised is intended for the GiNaC core classes. This is only a pair of wires leading outside of the kernel where an end user can connect his own devices to.
Have you tried using subs or custom tree traversers for your purpose? (Along the ideas sketched in the FAQ, I mean.)
Imagine that any calculation with complex numbers will require manual substitution of I^2=-1, will it be convenient? The purpose of the extension is just to let a user a freedom to make some such simple rules work automatically. It is the responsibility of the end user to decide himself what kind of rules are suitable for his task. I think that this is a nice way to keep GiNaC kernel small and tidy and yet suitable for very wide set of questions. Best wishes, Vladimir -- Vladimir V. Kisil email: kisilv@maths.leeds.ac.uk http://maths.leeds.ac.uk/~kisilv