docs: def _next(self):
          """
              Get next variable ID. Skip occupied intervals if any.
          """
  
          self.top += 1
  
          while self._occupied and self.top >= self._occupied[0][0]:
              if self.top <= self._occupied[0][1]:
                  self.top = self._occupied[0][1] + 1
  
              self._occupied.pop(0)
  
          return self.top