class Steep::Subtyping::Check

def push_variable_bounds(params)

def push_variable_bounds(params)
  case params
  when Array
    b = params.each.with_object({}) do |param, hash|
      hash[param.name] = param.upper_bound
    end
  when Hash
    b = params
  end
  @bounds.push(b)
  yield
ensure
  @bounds.pop
end