anchor.diff:      try
         let version = outerMap.Version
         let result = 
  -        if outerMap.Count = 0L then false
  +        if outerMap.Count = 0L then
  +          // TODO(!) trace assert that they are no set
  +          prevBucketIsSet <- false
  +          prevBucket <- Unchecked.defaultof<_>
  +          false
           else
             let removed =
               match direction with
  
positive.code:       this.GetCursor(outerMap.GetCursor(), true, Unchecked.defaultof<IReadOnlyOrderedMap<'K,'V>>, false)
      finally
        exitLockIf this.SyncRoot entered
  
    member private this.GetCursor(outer:ICursor<'K,SortedMap<'K,'V>>, isReset:bool,currentBatch:IReadOnlyOrderedMap<'K,'V>, isBatch:bool) : ICursor<'K,'V> =
      // TODO
  
negative.code:                 elif c = 0 then raise (ApplicationException("Impossible condition when hasPivot is false"))
                  else false
              | _ -> failwith "wrong direction"
            // TODO return condition
            //if removed then // we have Flushed, when needed for partial bucket change, above - just invalidate cache
            prevBucketIsSet <- false
            prevBucket <- Unchecked.defaultof<_>
            removed
        if result then 
          outerMap.Version <- version + 1L
  