docs: def _replace_batch(self):
          """Incorporates all pending values into the estimator."""
          if not self._head:
            self._head, self._buffer = self._record(self._buffer[0], 1, 0, None), self._buffer[1:]
  
          rank = 0.0
          current = self._head
  
          for b in self._buffer:
              if b < self._head._value:
                self._head = self._record(b, 1, 0, self._head)
  
              while current._successor and current._value < b:
                  rank += current._rank
                  current = current._successor
  
              if not current._successor:
                  current._successor = self._record(b, 1, 0, None)
  
              current._successor = self._record(b, 1, self._invariant(rank, self._observations)-1, current._successor)