auto tellsimpafter repetition?



How do I get Maxima to automatically use
the tellsimpafter rules until no further change
occurs in the expression?
-----------
rules and no repetition needed cases:

(%i1) matchdeclare(aa,atom,bb,atom,cc,atom,mm,integerp)$
(%i2) tellsimpafter(comm(aa . bb,cc),aa . comm(bb,cc) + comm (aa,cc) . bb)$
(%i3) tellsimpafter(comm (aa,bb . cc),bb . comm(aa,cc) + comm(aa,bb) . cc)$

(%i4) comm (a.b,c);
(%o4) comm(a,c) . b+a . comm(b,c)
(%i5) comm (a,b.c);

(%o5) b . comm(a,c)+comm(a,b) . c
(%i6) tellsimpafter(comm(aa^^mm,cc),aa . comm(aa^^(mm-1),cc)
            +comm(aa,cc).aa^^(mm-1))$

(%i7) comm(a^^2,c);
(%o7) comm(a,c) . a+a . comm(a,c)

 case where one ev  and
one expand is needed:

(%i8) comm(a^^3,c);
(%o8) comm(a,c) . a^^2+a . comm(a^^2,c)
(%i9) ev (%);
(%o9) comm(a,c) . a^^2+a . (comm(a,c) . a+a . comm(a,c))
(%i10) expand(%);
(%o10) comm(a,c) . a^^2+a^^2 . comm(a,c)+a . comm(a,c) . a

case where two ev's and one expand needed:

(%i11) comm(a^^4,c);
(%o11) comm(a,c) . a^^3+a . comm(a^^3,c)
(%i12) ev(%);
(%o12) comm(a,c) . a^^3+a . (comm(a,c) . a^^2+a . comm(a^^2,c))
(%i13) ev(%);
(%o13) comm(a,c) . a^^3+a . (comm(a,c) . a^^2
                          +a . (comm(a,c) . a+a . comm(a,c)))
(%i14) expand(%);
(%o14) comm(a,c) . a^^3+a^^3 . comm(a,c)+a^^2 . comm(a,c) . a
                       +a . comm(a,c) . a^^2

etc, for higher powers.

There must be a way to get repeated use and expansion
automatically?

Ted Woollett