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