proxyClass.field(JMod.PRIVATE | JMod.FINAL | JMod.STATIC, types._long, "serialVersionUID", JExpr.lit(serialization.serialVersionUID()));
}
JMethod constructor = proxyClass.constructor(JMod.NONE);
AbstractJClass usedValueClassType = valueClass.narrow(proxyClass.typeParams());
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);