class Steep::Subtyping::Check

def check_constraints(relation, variables:, variance:)

def check_constraints(relation, variables:, variance:)
  checker = Check.new(builder: builder)
  constraints.solution(
    checker,
    variance: variance,
    variables: variables,
    self_type: self_type,
    instance_type: instance_type,
    class_type: class_type
  )
  Success(relation)
rescue Constraints::UnsatisfiableConstraint => error
  Failure(relation, Result::Failure::UnsatisfiedConstraints.new(error))
end