new newer interface for derivative rules from Calculus
remove code borrowed from Graphs.jl