public virtual string apply(visitor visitor) { return visitor.visit(this); }
public override string apply(visitor visitor) { return visitor.visit(this); }