code: def _collapse(intervals):
      span = None
      for start, stop in intervals:
          if span is None:
              span = _Interval(start, stop)
          elif start <= span.stop < stop:
              span = _Interval(span.start, stop)
          elif start > span.stop:
              yield span
              span = _Interval(start, stop)
      if span is not None:
          yield span