docs: public static void copyTypeParametersFromJvmOperation(List<JvmTypeParameter> inputParameters,
  			List<JvmTypeParameter> outputParameters,
  			Map<String, JvmTypeReference> superTypeParameterMapping,
  			JvmTypeReferenceBuilder typeParameterBuilder, JvmTypesBuilder typeBuilder,
  			TypeReferences typeReferences, TypesFactory jvmTypesFactory) {
  		// Copy the generic types in two steps: first step is the name's copy.
  		for (final JvmTypeParameter typeParameter : inputParameters) {
  			final JvmTypeParameter typeParameterCopy = jvmTypesFactory.createJvmTypeParameter();
  			typeParameterCopy.setName(typeParameter.getName());
  			outputParameters.add(typeParameterCopy);
  		}
  		// Second step is the constraints' copy
  		for (int i = 0; i < inputParameters.size(); ++i) {
  			final JvmTypeParameter typeParameter = inputParameters.get(i);
  			final JvmTypeParameter typeParameterCopy = outputParameters.get(i);
  			for (final JvmTypeConstraint constraint : typeParameter.getConstraints()) {
  				JvmTypeConstraint cst = null;
  				if (constraint instanceof JvmLowerBound) {
  					cst = jvmTypesFactory.createJvmLowerBound();
  				} else if (constraint instanceof JvmUpperBound) {
  					cst = jvmTypesFactory.createJvmUpperBound();
  				}
  				if (cst != null) {
  					typeParameterCopy.getConstraints().add(cst);
  					cst.setTypeReference(cloneWithTypeParametersAndProxies(
  							constraint.getTypeReference(),
  							outputParameters,
  							superTypeParameterMapping,
  							typeParameterBuilder, typeBuilder, typeReferences, jvmTypesFactory));
  				}
  			}
  		}
  	}