anchor.diff:              pb.PutInt32(overflowFirstPage)
               newRange
   
  -        let writeLeaves leavesFirstPage leavesBoundaryPage :int*int*((int32*byte[]) list) =
  +        let writeLeaves leavesFirstPage leavesBoundaryPage :int*int*((int32*byte[]) list)*int =
               // 2 for the page type and flags
               // 4 for the prev page
               // 2 for the stored count
  
positive.code:             let flushLeaf st isRootPage = 
                  pb.PutInt16At (OFFSET_COUNT_PAIRS, st.keys.Length)
                  let thisPageNumber = st.nextPage
                  let (nextN,nextB) = 
                      if (not isRootPage) && (thisPageNumber = st.boundaryPage) then
                          pb.SetPageFlag FLAG_BOUNDARY_NODE
                          let newRange = pageManager.GetRange(token)
                          // assert pb.Position <= (pageSize - 4)
                          pb.SetLastInt32(fst newRange)
                          newRange
                      else
  
negative.code: 
              // this is the body of writeLeaves
              let source = seq { csr.First(); while csr.IsValid() do yield (csr.Key(), csr.Value()); csr.Next(); done }
              let initialState = {firstLeaf=0;keys=[];leaves=[];nextPage=leavesFirstPage;boundaryPage=leavesBoundaryPage}
              let middleState = Seq.fold folder initialState source
              let finalState = 
                  if middleState.keys.Length > 0 then
  