code: def simplify_for_Union(type_list):
      
      i = 0
      while i < len(type_list):
          j = 0
          while j < i:
              if _issubclass(type_list[j], type_list[i]):
                  del type_list[j]
                  i -= 1
              else:
                  j += 1
          j = i+1
          while j < len(type_list):
              if _issubclass(type_list[j], type_list[i]):
                  del type_list[j]
              else:
                  j += 1
          i += 1
docs: Removes types that are subtypes of other elements in the list.
      Does not return a copy, but instead modifies the given list.
      Intended for preprocessing of types to be combined into a typing.Union.
      Subtypecheck is backed by pytypes.is_subtype, so this differs from
      typing.Union's own simplification efforts.
      E.g. this also considers numeric tower like described in
      https://www.python.org/dev/peps/pep-0484/#the-numeric-tower
      (treats int as subtype of float as subtype of complex)
      Use pytypes.apply_numeric_tower flag to switch off numeric tower support.