public abstract void Accept(Visitor visitor);
public override void Accept(Visitor visitor) { visitor.Visit(this); }