diff() in itensor



Hello, list, i would like to use the diff() function within the itensor package, but it returns the  unexpected answer. Let's consider
  the code:

(%i1) load(itensor);

(%o1)      /usr/local/share/maxima/5.25.1/share/tensor/itensor.lisp

(%i2) test: exp(R([i,j],[])*a([],[i])*b([],[j]))$

(%i3) ishow(test);

                                     i  j

                                    a  b  R

                                           i j

(%t3)                            %e

                        a([], [i]) b([], [j]) R([i, j], [])

(%o3)                %e

(%i4) res:contract(diff(test,a([],[m])))$

(%i5) ishow(rename(res));

                                   i  %1

                                  a  b   R

                             %1           i %1

(%t5)                      b   %e             R

                                                m %1

                     a([], [i]) b([], [%1]) R([i, %1], [])

(%o5) b([], [%1]) %e                                      R([m, %1], [])

(%i6)



=================================
The result of this calculation is

                     a([], [i]) b([], [%1]) R([i,%1], [])
(%o5) b([], [%1]) %e                                      R([m,%1], []),

but the correct answer is something like

                     a([], [i]) b([], [%1]) R([i,%1], [])
(%o5) b([], [%2]) %e                                      R([m,%2], []).



So, the diff() function does not rename dummy indices. Is there any way to rename dummy indices automatically?