added tracking of derivative during recursion, should be able to add a
wrapper which is transparent for later function calls of nullability and
such but allows for temporary halting of the deriviative.
added derivative future to handle recursion