Been through the code and proc and quite a nice piece of work. :-) Checked out the DAG and see what you meant on storage inside maple. Since this is a 'print/pre' proc the display (prettyprint) is the only thing changing - correct?
I understand the op() function now and the sort mechanism much better. However, As an old time coder I sometimes can't wrap my head around (or say in words) of the arrow operator instantiation (x -> x2 - clasic example in the guides). Should this reads as, X is assigned X2 function (?)
It seems so different and easy to just say f(x) = X2 which is relatively straight forward equation formulation.
As such I get the "kinda" understanding of the programmer indexing (a,b) -> a > b
But, I can't say it accurately in words as an indexing method as to what a,b are doing. As indexing of the [OP] returned list, indexing is 1,1; 1,2; 1,3 etc, in row, col format. So, is (a,b) in arrow format to the comparison read as (a,b) pairs (r,c) 1,1; 1,2; 1,3, marching or 1,1 = a and 1,2 = b, then the arrow operator is the comparison?
The guide is a little short of describing the programmer indexing enough that I'm not getting it fully.
Sorry to be a little daft. This is some of the nuances of maplesoft that sometimes needs help explaining.
Thanks much in advance if you can help.