public override Expression Visit(Expression node) { if (node == null) { return(null); } if (!_candidates.Contains(node)) { return(base.Visit(node)); } var evaluated = EvaluateSubtree(node); if (evaluated != node) { return(PartialEvaluator.Evaluate(evaluated)); } return(evaluated); }