dy(x)/dy



Hello,

I try to take the next derivative:
d/dy(y(x))

(%i) d: diff(y(x),x);
(%o) d/dy(y(x))

Why?
I expect this expression to be 1, like in the following:
(%i) d: diff(y,x);
(%o) 1

I then try to fix this by substitution:

(%i) d: subst(y,y(x),d);
(%o) 1

but this does not work for double derivatives:
(%i) d: diff(diff(y(x),y),x);
(%i) d: subst(y,y(x),d);
(%o) d^2y/dxdy

I expect this expression to be zero.
Why this behaviour and how can I make it work the way I want 
without explicitly declaring dependencies?

Thanks and regards,
Nijso