code: def remove(self, interval):
          
          #self.verify()
          if interval not in self:
              #print(self.all_intervals)
              raise ValueError
          self.top_node = self.top_node.remove(interval)
          self.all_intervals.remove(interval)
          self._remove_boundaries(interval)
docs: Removes an interval from the tree, if present. If not, raises
          ValueError.
  
          Completes in O(log n) time.