anchor.diff:                          pb.SetSecondToLastInt32(firstLeaf)
                           pb.SetLastInt32(lastLeaf)
                       else
  -                        if isBoundary then
  +                        if (nextPageNumber = boundaryPageNumber) then
                               pb.SetPageFlag(FLAG_BOUNDARY_NODE)
                               let newRange = pageManager.GetRange(token)
                               nextPageNumber <- fst newRange
  
positive.code:             let neededForOverflow = 1 + Varint.SpaceNeededFor (int64 k.Length) + sizeof<int32> + Varint.SpaceNeededFor (int64 pagenum)
              let isLastChild = (i = (children.Count - 1))
              if (sofar > 0) then
                  // TODO BUG we are deciding here whether something will fit,
                  // and basing that decision in part on whether the nextPageNumber 
                  // is a boundary (which has 4 fewer bytes), but if we write any
                  // overflows between now and when this parent page gets written,
                  // whether/not it is a boundary could change.  Specifically, we
                  // can assume now that it is not a boundary, and use those 4
                  // bytes, and then later end up having it on a boundary, and
                  // end up stepping on something.
                  let isBoundary = (nextPageNumber = boundaryPageNumber)
                  let couldBeRoot = (nextGeneration.Count = 0)
                  let avail = calcAvailable (pb.PageSize) sofar couldBeRoot isBoundary
                  let fitsInline = (avail >= neededForInline)
                  let wouldFitInlineOnNextPage = ((pb.PageSize - PARENT_NODE_HEADER_SIZE) >= neededForInline)
                  let fitsOverflow = (avail >= neededForOverflow)
  
negative.code:         buf.[cur+3] <- byte (v >>>  0)
          cur <- cur+sizeof<int32>
  
      // TODO private?
      member this.PutInt32At(at:int, ov:int) =
          // assert ov >= 0
          let v:uint32 = uint32 ov
  