presto-main/src/main/java/io/prestosql/metadata/SignatureBinder.java/TypeRelationshipConstraintSolver/update
class TypeRelationshipConstraintSolver:        @Override
        public SolverReturnStatus update(BoundVariables.Builder bindings)
        {
            for (String variable : typeVariables) {
                if (!bindings.containsTypeVariable(variable)) {
                    return SolverReturnStatus.UNCHANGED_NOT_SATISFIED;
                }
            }
            for (String variable : longVariables) {
                if (!bindings.containsLongVariable(variable)) {
                    return SolverReturnStatus.UNCHANGED_NOT_SATISFIED;
                }
            }

            TypeSignature constraintTypeSignature = applyBoundVariables(formalTypeSignature, bindings.build());

            return satisfiesCoercion(relationshipType, actualType, constraintTypeSignature) ? SolverReturnStatus.UNCHANGED_SATISFIED : SolverReturnStatus.UNCHANGED_NOT_SATISFIED;
        }