@Override public <T> T accept(ExpressionVisitor<T> visitor) { return visitor.visit(this); }
@Override public ReturnType accept(ExpressionVisitor visitor) { return visitor.visit(this); }