def intersect(self, other):
if not self.overlap(other):<EOL><INDENT>return None<EOL><DEDENT>newstart = max(self._start, other.start)<EOL>newend = min(self._end, other.end)<EOL>return Range(newstart, newend)<EOL>
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.