code: protected LightweightTypeReference normalizeFunctionTypeReference(LightweightTypeReference type) {
  		if (type.getKind() == LightweightTypeReference.KIND_FUNCTION_TYPE_REFERENCE) {
  			ParameterizedTypeReference parameterized = new ParameterizedTypeReference(type.getOwner(), type.getType());
  			for(LightweightTypeReference argument: type.getTypeArguments()) {
  				parameterized.addTypeArgument(argument);
  			}
  			type = parameterized.tryConvertToFunctionTypeReference(false);
  		}
  		return type;
  	}
docs: A function type reference may be known to have the type argument {@link Number} but still use a more
  specific return type {@link Integer}. Normalization converts such a reference to the return type {@link Number}.