public void Visit(Op <T> op)
        {
            op.Differentiate();

            foreach (var parent in op.Parents)
            {
                var diff = new DifferentiateVisitor <T>();
                diff.Visit(parent);
            }
        }