# Why is basic arithmetic disallowed on symbolic functions?

The documentation at http://www.sagemath.org/doc/reference... states:

In Sage 4.0, basic arithmetic with unevaluated functions is no longer supported

Why? What is the intended way of manipulating equations and then, at some point, taking derivatives with respect to some dependent variable? The following approach has an undesired side-effect:

```
sage: var('B E H T_s')
(B, E, H, T_s)
sage: eq_B_TS = B == H/E
sage: diff(eq_B_TS.subs(B = function('B')(T_s), E = function('E')(T_s), H = function('H')(T_s)), T_s)
D[0](B)(T_s) == -H(T_s)*D[0](E)(T_s)/E(T_s)^2 + D[0](H)(T_s)/E(T_s)
```

Fine, but now my B, E and H are symbolic functions and I cannot do any basic arithmetic with them any more:

```
sage: B*E
Traceback (click to the left of this block for traceback)
...
TypeError: unsupported operand type(s) for *: 'NewSymbolicFunction' and 'NewSymbolicFunction'
```

There must be a better way. Thanks for your help already.