anchor.diff:      abstract CompareKey: 'KeyT -> int
       abstract ConvertRow: byref<'RowT> -> 'T
   
  -let seekReadIndexedRowsByInterface numRows binaryChop (reader: ISeekReadIndexedRowReader<'RowT, _, _>) =
  +let seekReadIndexedRowsRange numRows binaryChop (reader: ISeekReadIndexedRowReader<'RowT, _, _>) =
       let mutable row = Unchecked.defaultof<'RowT>
  +
  +    let mutable startRid = -1
  +    let mutable endRid = -1
   
       if binaryChop then
           let mutable low = 0
  
positive.code:                     reader.GetRow(curr, &row)
  
                      if reader.CompareKey(reader.GetKey(&row)) = 0 then
                          res.Add(reader.ConvertRow(&row))
                      else
                          fin <- true
  
                  curr <- curr - 1
  
              res.Reverse()
  
              // read forward
              let mutable fin = false
  
negative.code:                 elif c < 0 then high <- mid
                  else fin <- true
  
          if high - low > 1 then
              // now read off rows, forward and backwards
              let mid = (low + high) / 2
  
              startRid <- mid
  
              // read backwards
              let mutable fin = false
  