docs: private void fixAfterDeletion(TreeEntry<E> x) {
          while (x != root && colorOf(x) == BLACK) {
              if (x == leftOf(parentOf(x))) {
                  TreeEntry<E> sib = rightOf(parentOf(x));
  
                  if (colorOf(sib) == RED) {
                      setColor(sib, BLACK);
                      setColor(parentOf(x), RED);
                      rotateLeft(parentOf(x));
                      sib = rightOf(parentOf(x));
                  }
  
                  if (colorOf(leftOf(sib)) == BLACK
                          && colorOf(rightOf(sib)) == BLACK) {
                      setColor(sib, RED);
                      x = parentOf(x);
                  } else {
                      if (colorOf(rightOf(sib)) == BLACK) {
                          setColor(leftOf(sib), BLACK);
                          setColor(sib, RED);
                          rotateRight(sib);
                          sib = rightOf(parentOf(x));
                      }
                      setColor(sib, colorOf(parentOf(x)));
                      setColor(parentOf(x), BLACK);
                      setColor(rightOf(sib), BLACK);
                      rotateLeft(parentOf(x));
                      x = root;
                  }
              } else { // symmetric
                  TreeEntry<E> sib = leftOf(parentOf(x));
  
                  if (colorOf(sib) == RED) {
                      setColor(sib, BLACK);
                      setColor(parentOf(x), RED);
                      rotateRight(parentOf(x));
                      sib = leftOf(parentOf(x));
                  }
  
                  if (colorOf(rightOf(sib)) == BLACK
                          && colorOf(leftOf(sib)) == BLACK) {
                      setColor(sib, RED);
                      x = parentOf(x);
                  } else {
                      if (colorOf(leftOf(sib)) == BLACK) {
                          setColor(rightOf(sib), BLACK);
                          setColor(sib, RED);
                          rotateLeft(sib);
                          sib = leftOf(parentOf(x));
                      }
                      setColor(sib, colorOf(parentOf(x)));
                      setColor(parentOf(x), BLACK);
                      setColor(leftOf(sib), BLACK);
                      rotateRight(parentOf(x));
                      x = root;
                  }
              }
          }
  
          setColor(x, BLACK);
      }