code: def intersection(self, other):
          
          ivs = set()
          shorter, longer = sorted([self, other], key=len)
          for iv in shorter:
              if iv in longer:
                  ivs.add(iv)
          return IntervalTree(ivs)
docs: Returns a new tree of all intervals common to both self and
          other.