anchor.diff:              else
                   putArrayWithLength pb k
   
  -    let private calcAvailable pageSize currentSize couldBeRoot isBoundary =
  +    let private calcAvailable pageSize currentSize couldBeRoot =
           let basicSize = pageSize - currentSize
  -        let allowanceForBoundaryNode = if isBoundary then sizeof<int32> else 0 // nextPage
  -        let allowanceForRootNode = if couldBeRoot then 2*sizeof<int32> else 0 // first/last Leaf
  +        let allowanceForBoundaryNode = sizeof<int32>
  +        let allowanceForRootNode = if couldBeRoot then sizeof<int32> else 0 // first/last Leaf
           basicSize - (allowanceForRootNode + allowanceForBoundaryNode)
   
       let private writeParentNodes (pageManager:IPages) token firstLeaf lastLeaf (children:System.Collections.Generic.List<int32 * byte[]>) startingPageNumber startingBoundaryPageNumber fs (pb:PageBuilder) (pbOverflow:PageBuilder) =
  
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:             csr.Next()
  
              if pb.Position > 0 then
                  let avail = pb.Available - sizeof<int32> // for the lastInt32
                  let fitBothInline = (avail >= neededForBothInline)
                  let wouldFitBothInlineOnNextPage = ((pb.PageSize - LEAF_HEADER_SIZE) >= neededForBothInline)
                  let fitKeyInlineValueOverflow = (avail >= neededForKeyInlineValueOverflow)
  