anchor.diff:          if prevBucketIsSet && comparer.Compare(key, prevHash) >= 0 && comparer.Compare(key, prevBucket.Last.Key) <= 0 then
             prevBucket.Add(key,value)
             outerMap.Version <- outerMap.Version + 1L
  +          if cursorCounter > 0 then this.onNextEvent.Trigger(KVP(key,value))
           else
             let mutable kvp = Unchecked.defaultof<_>
             let ok = outerMap.TryFind(key, Lookup.LE, &kvp)
  
positive.code:         }
      SortedChunkedMap(outerFactory.Invoke, comparer, Some(hasher))
    new(outerFactory:Func<IComparer<'K>,IOrderedMap<'K, SortedMap<'K,'V>>>,comparer:IComparer<'K>,chunkMaxSize:int) = 
      SortedChunkedMap(outerFactory.Invoke, comparer, None, chunkMaxSize)
negative.code:       this.GetCursor(outerMap.GetCursor(), true, Unchecked.defaultof<IReadOnlyOrderedMap<'K,'V>>, false)
      finally
        exitLockIf this.SyncRoot entered
  
  
    member private this.GetCursor2(outer:ICursor<'K,SortedMap<'K,'V>>, isReset:bool,currentBatch:IReadOnlyOrderedMap<'K,'V>, isBatch:bool) : ICursor<'K,'V> =
  
      failwith ""
  
  
  
    member private this.GetCursor(outer:ICursor<'K,SortedMap<'K,'V>>, isReset:bool,currentBatch:IReadOnlyOrderedMap<'K,'V>, isBatch:bool) : ICursor<'K,'V> =
      // TODO
  