code: def is_equal_type(type_a: GraphQLType, type_b: GraphQLType):
      
      # Equivalent types are equal.
      if type_a is type_b:
          return True
  
      # If either type is non-null, the other must also be non-null.
      if is_non_null_type(type_a) and is_non_null_type(type_b):
          # noinspection PyUnresolvedReferences
          return is_equal_type(type_a.of_type, type_b.of_type)  # type:ignore
  
      # If either type is a list, the other must also be a list.
      if is_list_type(type_a) and is_list_type(type_b):
          # noinspection PyUnresolvedReferences
          return is_equal_type(type_a.of_type, type_b.of_type)  # type:ignore
  
      # Otherwise the types are not equal.
      return False
docs: Check whether two types are equal.
  
      Provided two types, return true if the types are equal (invariant).