Sam Garfinkel
ParameterizedTypeName.get(ClassName.get(Function::class.java), WildcardTypeName.supertypeOf(TypeVariableName.get("T")), WildcardTypeName.subtypeOf(TypeVariableName.get("U")))