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