anchor.diff:                      let isLastChild = (i = (children.Count - 1))
                       let couldBeRoot = (nextGeneration.Count = 0)
   
  -                    let maybeFlush sofar first nextPageNumber boundaryPageNumber = 
  +                    let maybeFlush args = 
  +                        let (sofar, first, nextPageNumber, boundaryPageNumber) = args
                           // TODO flush logic used to be guarded by if sofar > 0.  should it still be?
                           let available = calcAvailable sofar couldBeRoot
                           let fitsInline = (available >= neededForInline)
  
positive.code:                             putKeyWithLength k
  
                  let folder st (pagenum,k:byte[]) =
                      let (i, sofar, firstChild, nextPageNumber, boundaryPageNumber) = st
  
                      let neededEitherWay = 1 + Varint.SpaceNeededFor (int64 k.Length) + Varint.SpaceNeededFor (int64 pagenum)
                      let neededForInline = neededEitherWay + k.Length
  
negative.code:                         else
                              (sofar, first, nextPageNumber, boundaryPageNumber)
  
                      let addKeyToParent args = 
                          let (sofar, firstChild, nextPageNumber, boundaryPageNumber) = args
                          if isLastChild then 
                              (sofar, firstChild, nextPageNumber, boundaryPageNumber)
                          else
  