def METHOD_NAME(self, other: Range) -> Optional[Range]:
    if self.maximum < other.minimum or self.minimum > other.maximum:
        return None
    else:
        return Range(
            max(self.minimum, other.minimum),
            min(self.maximum, other.maximum),
            self.default,  # We don't care about the default in this use-case
        )