presto-main/src/main/java/io/prestosql/type/FunctionType.java/FunctionType/typeParameters
class FunctionType:    private static List<TypeSignatureParameter> typeParameters(List<Type> argumentTypes, Type returnType)
    {
        requireNonNull(returnType, "returnType is null");
        requireNonNull(argumentTypes, "argumentTypes is null");
        ImmutableList.Builder<TypeSignatureParameter> builder = ImmutableList.builder();
        argumentTypes.stream()
                .map(Type::getTypeSignature)
                .map(TypeSignatureParameter::typeParameter)
                .forEach(builder::add);
        builder.add(TypeSignatureParameter.typeParameter(returnType.getTypeSignature()));
        return builder.build();
    }