def union(self, i):
if self.intersects(i) or self.end + <NUM_LIT:1> == i.start or i.end + <NUM_LIT:1> == self.start:<EOL><INDENT>return Interval(min(self.start, i.start), max(self.end, i.end))<EOL><DEDENT>else:<EOL><INDENT>return None<EOL><DEDENT>
If intervals intersect, returns their union, otherwise returns None