code: private void leftAdd(
                          GBSNode           p,
                          GBSNode           r,
                          Object            new1,
                          NodeInsertPoint   ip,
                          InsertNodes       point)
      {
          if (r == null)                 /* There is no upper predecessor         */
              leftAddNoPredecessor(p, new1, ip, point);
          else                           /* There is an upper predecessor         */
              leftAddWithPredecessor(p, r, new1, ip, point);
      }
docs: Add to predecssor or current.
  
  <ol>
  <li>There is no left child.
  
  <li>There might or might not be a right child
  
  <li>INSERT_KEY  <  MEDIAN of current node
  
  <li>INSERT_KEY  >  MEDIAN of predecessor (if there is one)
  </ol>
  <p>In the example below, if the current node is GHI, then the insert
  key is greater than E and less than H. If the current node is MNO,
  then the insert key is greater than K and less than N. If the
  current node is ABC, the insert key is less than B and there is no
  predecessor because there is no node from which we moved right.</p>
  <pre>
  
  *------------------J.K.L------------------*
  |                                         |
  |                                         |
  |                                         |
  *-------D.E.F-------*                     *-------P.Q.R-------*
  |                   |                     |                   |
  |                   |                     |                   |
  |                   |                     |                   |
  A.B.C               G.H.I                 M.N.O               S.T.U
  
  </pre>
  
  <p>We tried to move left and fell off the end.  If the key value is
  greater than the high key of the predecessor or if there is no
  predecessor, the insert point is in the left half of the current
  node.  Otherwise, the insert point is in the right half of the
  predecessor node.</p>
  
  @param p Current node from which we tried to move left
  @param r Last node from which we actually moved right (logical predecessor)
  @param new1 Key being inserted
  @param ip Scratch NodeInsertPoint to avoid allocating a new one
  @param point Returned insert points