proxyClass.field(JMod.PRIVATE | JMod.FINAL, usedValueClassType, "implementation");
constructor.param(usedValueClassType, "implementation");
constructor.body().assign(JExpr._this().ref("implementation"), JExpr.ref("implementation"));
JMethod acceptMethod = proxyClass.method(JMod.PUBLIC, types._void, "accept");
acceptMethod.annotate(Override.class);
JTypeVar visitorResultType = visitorInterface.getResultTypeParameter();
JTypeVar resultType = Types.generifyWithBoundsFrom(acceptMethod, visitorResultType.name(), visitorResultType);
acceptMethod.type(resultType);
JTypeVar visitorExceptionType = visitorInterface.getExceptionTypeParameter();
JTypeVar exceptionType = null;