class Steep::Subtyping::Check

def extract_nominal_pairs(relation)

def extract_nominal_pairs(relation)
  sub_type = relation.sub_type
  super_type = relation.super_type
  case
  when sub_type.is_a?(AST::Types::Name::Instance) && super_type.is_a?(AST::Types::Name::Instance)
    if sub_type.name == super_type.name && sub_type.args.size == super_type.args.size
      sub_type.args.zip(super_type.args)
    end
  when sub_type.is_a?(AST::Types::Name::Interface) && super_type.is_a?(AST::Types::Name::Interface)
    if sub_type.name == super_type.name && sub_type.args.size == super_type.args.size
      sub_type.args.zip(super_type.args)
    end
  when sub_type.is_a?(AST::Types::Name::Alias) && super_type.is_a?(AST::Types::Name::Alias)
    if sub_type.name == super_type.name && sub_type.args.size == super_type.args.size
      sub_type.args.zip(super_type.args)
    end
  when sub_type.is_a?(AST::Types::Name::Class) && super_type.is_a?(AST::Types::Name::Class)
    if sub_type.name == super_type.name
      []
    end
  when sub_type.is_a?(AST::Types::Name::Module) && super_type.is_a?(AST::Types::Name::Module)
    if sub_type.name == super_type.name
      []
    end
  end
end