anchor.diff:          /////////// End read-locked code /////////////
           if doSpin then
             let nextVersion = Volatile.Read(&this.source.nextVersion)
  -          if version = nextVersion then doSpin <- false
  +          if version = nextVersion || not this.synced then doSpin <- false
             else sw.SpinOnce()
         if result then
           //if this.HasValidInner then this.innerCursor.Dispose()
  
positive.code:         /////////// End read-locked code /////////////
          if doSpin then
            let nextVersion = Volatile.Read(&this.source.nextVersion)
            if version = nextVersion then doSpin <- false
            else sw.SpinOnce()
        if result then
          //if this.HasValidInner then this.innerCursor.Dispose()
  
negative.code:         /////////// End read-locked code /////////////
          if doSpin then
            let nextVersion = Volatile.Read(&this.source.nextVersion)
            if version = nextVersion || not this.synced then doSpin <- false
            else sw.SpinOnce()
        if result then
          //if this.HasValidInner then this.innerCursor.Dispose()
  