docs: private void insertCheckFringeBalance(
                                           InsertStack       stack,
                                           GBSNode           endp,
                                           int               endIndex,
                                           int               maxBal)
      {
          GBSNode       fpoint = null;   /* This points to the first half leaf we */
                                         /*  find that has a right child but no   */
                                         /*  left child.  If any rebalancing is   */
                                         /*  to be done to a fringe, this will be */
                                         /*  the fringe balance point.            */
  
          int           fDepth = 0;      /* Fringe balance depth                  */
  
          int           fpidx = 0;       /* Index into NodeStack where fpoint was */
                                         /*  last saved                           */
  
          /* Check to see if we have filled out a final node, which may have      */
          /* filled out a fringe to the re-balance point.  The absence of a       */
          /* left child means it is part of a fringe.  If this is the case we     */
          /* walk backward through the tree looking for the top of the fringe.    */
          if ( (endp.isFull()) &&
               (endp.leftChild() == null) )
          {
              fDepth = 1;                /* Last node counts as one               */
              for (int j = endIndex; j > 0; j--)
              {
                  GBSNode q = stack.node(j);
                  if (q.leftChild() != null)/* Found the top of the fringe          */
                      break;
                  else                     /* Not yet the top of the fringe         */
                  {
                      fDepth++;            /* Bump fringe depth                     */
                      fpoint = q;          /* Remember possible fringe balance point*/
                      fpidx = j;           /*  and its index in the stack           */
                  }
              }
  
              if (fDepth >= maxBal)
              {
                  _xno++;
                  GBSInsertFringe.singleInstance().balance(
                                                          kFactor(), stack, fpoint, fpidx, maxBal);
              }
          }
      }