anchor.diff:                  i <- i + 1
           if i>len then result else (xlen - ylen)
   
  +// TODO this could move into BTreeSegment.Create.
  +// and it doesn't need to be a class.
   type private PageBuilder(pgsz:int) =
       let mutable cur = 0
       let buf:byte[] = Array.zeroCreate pgsz
  
positive.code:         let pbOverflow = new PageBuilder(pageSize)
          let token = pageManager.Begin()
  
          let writeLeaves leavesFirstPage leavesBoundaryPage :int*int*System.Collections.Generic.List<int32 * byte[]> =
              // 2 for the page type and flags
              // 4 for the prev page
  
negative.code:                  *)
                  let available = pb.Available - sizeof<int32> // for the lastInt32
                  if (available >= neededForBothInline) then
                      putKeyWithLength k
                      if null = v then
                          pb.PutByte(FLAG_TOMBSTONE)
                          pb.PutVarint(0L)
                      else
                          pb.PutByte(0uy)
                          pb.PutVarint(int64 vlen)
                          pb.PutStream(v, int vlen)
                  else
                      if (available >= neededForKeyInlineValueOverflow) then
                          putKeyWithLength k
                      else
                          let keyOverflowFirstPage = nextPageNumber
                          let kRange = writeOverflow pageManager token nextPageNumber boundaryPageNumber pbOverflow fs (new MemoryStream(k))
  