code: def merge(self, other):
          
          newstart = min(self._start, other.start)
          newend = max(self._end, other.end)
          return Range(newstart, newend)
docs: Merge this range object with another (ranges need not overlap or abut).
  
          :returns: a new Range object representing the interval containing both
                    ranges.