docs: def add(self, type):
          # type: (InternalType) -> None
          """
          Add type to the runtime type samples.
          """
          try:
              if isinstance(type, SetType):
                  if EMPTY_SET_TYPE in self.types_hashable:
                      self.types_hashable.remove(EMPTY_SET_TYPE)
              elif isinstance(type, ListType):
                  if EMPTY_LIST_TYPE in self.types_hashable:
                      self.types_hashable.remove(EMPTY_LIST_TYPE)
              elif isinstance(type, IteratorType):
                  if EMPTY_ITERATOR_TYPE in self.types_hashable:
                      self.types_hashable.remove(EMPTY_ITERATOR_TYPE)
              elif isinstance(type, DictType):
                  if EMPTY_DICT_TYPE in self.types_hashable:
                      self.types_hashable.remove(EMPTY_DICT_TYPE)
                  for item in self.types_hashable:
                      if isinstance(item, DictType):
                          if item.key_type == type.key_type:
                              item.val_type.merge(type.val_type)
                              return
              self.types_hashable.add(type)
  
          except (TypeError, AttributeError):
              try:
                  if type not in self.types:
                      self.types.append(type)
              except AttributeError:
                  if TypeWasIncomparable not in self.types:
                      self.types.append(TypeWasIncomparable)