I see, you're sensitive for the difficulties which might arise. That's the thing I wanted to point out. Maybe I was looking too far forward...
My first thought was to add attributes/qualifiers to the operands to improve the sorting. Then I realized that these attributes/qualifiers were related to the operators, since multiplication and division use the same operands, but while in one case it is associative and commutative, it isn't in the other. I agree that all this leads too far. But one thing creeps into my mind again: I guess you'll always need an inverse operation: A class which can handle multiplication will certainly require an inverse operation like division. Bernhard -- http://mail.python.org/mailman/listinfo/python-list