anchor.diff:              Interlocked.Increment(&this.version) |> ignore
               exitWriteLockIf &this.locker entered
               #if PRERELEASE
  -            if this.version <> this.nextVersion then raise (ApplicationException("this.orderVersion <> this.nextVersion"))
  +            if entered && this.version <> this.nextVersion then raise (ApplicationException("this.orderVersion <> this.nextVersion"))
               #else
  -            if this.version <> this.nextVersion then Environment.FailFast("this.orderVersion <> this.nextVersion")
  +            if entered && this.version <> this.nextVersion then Environment.FailFast("this.orderVersion <> this.nextVersion")
               #endif
   
   
  
positive.code:       Interlocked.Increment(&this.version) |> ignore
        exitWriteLockIf &this.locker entered
        #if PRERELEASE
        if this.version <> this.nextVersion then raise (ApplicationException("this.orderVersion <> this.nextVersion"))
        #else
        if this.version <> this.nextVersion then Environment.FailFast("this.orderVersion <> this.nextVersion")
        #endif
      
  
  
negative.code:     member this.Current with get() : KVP<'K,'V> = KeyValuePair(this.currentKey, this.currentValue)
  
      member this.Reset() = 
        this.cursorVersion <- -1L
        this.currentKey <- Unchecked.defaultof<'K>
        this.currentValue <- Unchecked.defaultof<'V>
        this.index <- -1
  