protected virtual Expression BaseVisitNhSum(SumExpression expression)
        {
            Expression nx = base.VisitExpression(expression.Expression);

            return nx != expression.Expression ? new SumExpression(nx) : expression;
        }
 protected virtual Expression VisitNhSum(SumExpression expression)
 {
     return VisitUnhandledItem<SumExpression, Expression>(expression, "VisitNhSum", BaseVisitNhSum);
 }