The following example illustrates that components() should not be used
if you have contractions inside the tensor definition
(%i1) load(itensor);
(%o1) /usr/share/maxima/5.9.1/share/tensor/itensor.lisp
(%i2) components(f([i],[]),m([],[j])*l([j],[])*p([i],[]));
(%o2) DONE
(%i3) f([i],[])*f([j],[]);
2 2
(%o3) m ([], [j]) p([i], []) l ([j], []) p([j], [])
which is obviously wrong
Valery