@Override public <R, A> R accept(GenericVisitor<R, A> v, A arg) { return v.visit(this, arg); }
@Override @SuppressWarnings("unchecked") // we check listeners on the way in. public <R, A> R accept(GenericVisitor<R, A> v, A arg) { return v.visit(this, arg); }