class Steep::Subtyping::Check

def cache_bounds(relation)

def cache_bounds(relation)
  vars = relation.sub_type.free_variables + relation.super_type.free_variables
  vars.each.with_object({}) do |var, hash|
    if upper_bound = variable_upper_bound(var)
      hash[var] = upper_bound
    end
  end
end