def intersect(self, other, blend=True):
if not self.any_overlaps(other):<EOL><INDENT>m = '<STR_LIT>'<EOL>raise IntervalError(m)<EOL><DEDENT>_, intersection, _ = self._explode(other)<EOL>return intersection._combine(self, other, blend=blend)<EOL>
Perform the intersection binary operation. self must at least
partially overlap with other or an IntervalError is raised.

If blend is False, you are essentially replacing self with other.

Args:
    other (Interval): The other Interval.
    blend (bool): Whether to blend or not.

Returns:
    Interval. The intersection of the Interval with the one provided.