docs: def verify(self, parents=set()):
          """
          ## DEBUG ONLY ##
          Recursively ensures that the invariants of an interval subtree
          hold.
          """
          assert(isinstance(self.s_center, set))
  
          bal = self.balance
          assert abs(bal) < 2, \
              "Error: Rotation should have happened, but didn't! \n{}".format(
                  self.print_structure(tostring=True)
              )
          self.refresh_balance()
          assert bal == self.balance, \
              "Error: self.balance not set correctly! \n{}".format(
                  self.print_structure(tostring=True)
              )
  
          assert self.s_center, \
              "Error: s_center is empty! \n{}".format(
                  self.print_structure(tostring=True)
              )
          for iv in self.s_center:
              assert hasattr(iv, 'begin')
              assert hasattr(iv, 'end')
              assert iv.begin < iv.end
              assert iv.overlaps(self.x_center)
              for parent in sorted(parents):
                  assert not iv.contains_point(parent), \
                      "Error: Overlaps ancestor ({})! \n{}\n\n{}".format(
                          parent, iv, self.print_structure(tostring=True)
                      )
          if self[0]:
              assert self[0].x_center < self.x_center, \
                  "Error: Out-of-order left child! {}".format(self.x_center)
              self[0].verify(parents.union([self.x_center]))
          if self[1]:
              assert self[1].x_center > self.x_center, \
                  "Error: Out-of-order right child! {}".format(self.x_center)
              self[1].verify(parents.union([self.x_center]))