docs: private boolean delete(int i) {
          //checkInvariants();
          final Object[] elements = this.elements;
          final int mask = elements.length - 1;
          final int h = head;
          final int t = tail;
          final int front = (i - h) & mask;
          final int back  = (t - i) & mask;
  
          // Invariant: head <= i < tail mod circularity
          if (front >= ((t - h) & mask))
              throw new ConcurrentModificationException();
  
          // Optimize for least element motion
          if (front < back) {
              if (h <= i) {
                  System.arraycopy(elements, h, elements, h + 1, front);
              } else { // Wrap around
                  System.arraycopy(elements, 0, elements, 1, i);
                  elements[0] = elements[mask];
                  System.arraycopy(elements, h, elements, h + 1, mask - h);
              }
              elements[h] = null;
              head = (h + 1) & mask;
              return false;
          } else {
              if (i < t) { // Copy the null tail as well
                  System.arraycopy(elements, i + 1, elements, i, back);
                  tail = t - 1;
              } else { // Wrap around
                  System.arraycopy(elements, i + 1, elements, i, mask - i);
                  elements[mask] = elements[0];
                  System.arraycopy(elements, 1, elements, 0, t);
                  tail = (t - 1) & mask;
              }
              return true;
          }
      }