The expr can be an expression vector or other language object.
If it
is a complex expression (e.g. (a + b) + c), then simplifications
will be applied recursively. Simplifications are applied
from the database created by newSimplification,
and the new expression (or call...) is returned.
This function is mainly for internal use by nlsDeriv.