code: def iter_merge(cls, timeseries_list):
          
          # using return without an argument is the way to say "the
          # iterator is empty" when there is nothing to iterate over
          # (the more you know...)
          if not timeseries_list:
              return
  
          # for ts in timeseries_list:
          #     if ts.is_floating():
          #         msg = "can't merge empty TimeSeries with no default value"
          #         raise KeyError(msg)
  
          # This function mostly wraps _iter_merge, the main point of
          # this is to deal with the case of tied times, where we only
          # want to yield the last list of values that occurs for any
          # group of tied times.
          index, previous_t, previous_state = -1, object(), object()
          for index, (t, state) in enumerate(cls._iter_merge(timeseries_list)):
              if index > 0 and t != previous_t:
                  yield previous_t, previous_state
              previous_t, previous_state = t, state
  
          # only yield final thing if there was at least one element
          # yielded by _iter_merge
          if index > -1:
              yield previous_t, previous_state
docs: Iterate through several time series in order, yielding (time, list)
          tuples where list is the values of each individual TimeSeries
          in the list at time t.