anchor.diff:      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
  +            keys:(byte[] list) // TODO we apparently only use the count and head of this list
  +            firstLeaf:int32
  +            leaves:pgitem list 
  +            blk:PageBlock
           }
   
       let CreateFromSortedSequenceOfKeyValuePairs(fs:Stream, pageManager:IPages, source:seq<kvp>) = 
  
positive.code: 
                      if writeThisPage then
                          writeLeaf st false true
  
                  let addPairToLeaf (st:LeafState) =
                      let available = pb.Available - sizeof<int32> // for the lastInt32
  
negative.code:                 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}
  
              let foldLeaf st (pair:kvp) = 
                  let k = pair.Key
  