applying chain rule in maxima



Hi gurus
   I am interested in using maxima capabilities to perform chain rule 
kind of computation. But I can not figure out how to do it and I am 
wondering if any  of you could help.

I have an unknown function f which depends on xi. xi in turn depends of 
x. Now I want to evaluate df/dx. This is what I did after reading the 
manual.

xi(x) := 2*x/L -1$
depends(f, xi(x))$
diff(f, x);

But the answer for this is

(C3) diff(f, x);

                                       df
                                  2 --------
                                     2 x
                                    d--- - 1
                                      L
(D3)                              ----------
                                      L


Though the given answer is technically correct, I would like the answer 
to be 2/L * df/d xi. How can I achieve this? I tried ratsimp and other 
simplifying functions. But they are of no use. This capability is very 
important when f depends on say more than one variable.

let's say f now depends on xi and eta. xi and eta in turn depend on x,y. 
Then diff(f,x) looks very clumsy depending upon the relationship between 
[xi, eta] and [x, y]. Any suggestions to overcome the problem?

BTW, maxima along with texmacs is just wonderful! kudos to the developers.

thanks in advance
raju