docs: def intersect(self, other):
          """
          Determine the interval of overlap between this range and another.
  
          :returns: a new Range object representing the overlapping interval,
                    or `None` if the ranges do not overlap.
          """
          if not self.overlap(other):
              return None
  
          newstart = max(self._start, other.start)
          newend = min(self._end, other.end)
          return Range(newstart, newend)