public Expression Visit <A>(IProjR <A> pair) where A : Expression { var expr = (AbstractPairExpression)pair.Expression.Accept(this); return(pair.Construct(expr)); }