ordering of *opers-list



Changing the order of *opers-list eliminates some bugs (it might introduce
other bugs). Is it intentional that the *opers-list ordering matter?

Example:

  (%i1) declare(f, multiplicative, f, additive)$

Not OK -- the expand(%,0,0) shouldn't be needed:

  (%i2) f(a*b+c);
  (%o2) f(c)+f(a*b)
  (%i3) expand(%,0,0);
  (%o3) f(c)+f(a)*f(b)

Reversing *opers-list eliminates the bug (for no particular reason,
reverse the list):

 (%i4) :lisp(setq *opers-list (reverse *opers-list));

OK:

  (%i4) f(a*b+c);
  (%o4) f(c)+f(a)*f(b)

The order of the declare --- say declare(f, additive, f, multiplicative, f)
doesn't make any difference, I think.

Barton