public <T, E extends Throwable> T accept(IValueVisitor<T, E> v) throws E { return v.visitConstructor(this); }
@Override public <T, E extends Throwable> T accept(IValueVisitor<T, E> v) throws E { return v.visitExternal(this); }