protected abstract void OnAccept(ExpressionVisitor visitor);
protected override void OnAccept(ExpressionVisitor visitor) => visitor.Visit(this);
void IVisitableExpression.Accept(ExpressionVisitor visitor) { OnAccept(visitor); }