anchor.diff:                  if more then
                       initLeaf thisPageNumber
                   if nextBlk.firstPage <> (thisPageNumber+1) then utils.SeekPage(fs, pageSize, nextBlk.firstPage)
  -                {keys=[]; firstLeaf=firstLeaf; blk=nextBlk; leaves=pgitem(thisPageNumber,List.head st.keys)::st.leaves}
  +                st.leaves <- pgitem(thisPageNumber,List.head st.keys)::st.leaves
  +                st.keys <- []
  +                st.firstLeaf <- firstLeaf
  +                st.blk <- nextBlk
   
               let foldLeaf st (pair:kvp) = 
                   let k = pair.Key
  
positive.code: 
                      if writeThisPage then
                          writeLeaf st false true
                      else
                          st
  
                  let addPairToLeaf (st:LeafState) =
                      let available = pb.Available - sizeof<int32> // for the lastInt32
  
negative.code:     type private LeafState =
          // TODO considered making this a struct, but it doesn't make much/any perf difference
          {
              mutable keys:(byte[] list) // TODO we apparently only use the count and head of this list
              mutable firstLeaf:int32
              mutable leaves:pgitem list 
              mutable blk:PageBlock
          }
  
      let CreateFromSortedSequenceOfKeyValuePairs(fs:Stream, pageManager:IPages, source:seq<kvp>) = 
  