code: def substitute_any_type(self, basic_types: Set[BasicType]) -> List[Type]:
          
          substitutions = []
          for first_type in substitute_any_type(self.first, basic_types):
              for second_type in substitute_any_type(self.second, basic_types):
                  substitutions.append(self.__class__(first_type, second_type))
          return substitutions
docs: Takes a set of ``BasicTypes`` and replaces any instances of ``ANY_TYPE`` inside this
          complex type with each of those basic types.