This patch fixes the problem with derivatives Tim found, e.g. F:=operator F x:=operator x y:=operator y a:=F(x z,y z,z**2)+x y(z+1) D(a,z)
However I've had to abandon differential notation for now, although I'd like to find some way to use it when appropriate, or perhaps give the user the option of trying it.