anchor.diff:            hasValidState <- this.TryUpdatePrevious(this.InputCursor.Current, &value)
   #endif
             if hasValidState then 
  -            this.CurrentKey <- this.InputCursor.CurrentKey
  -            this.CurrentValue <- value
  +            currentKey <- this.InputCursor.CurrentKey
  +            currentValue <- value
           hasValidState
         else this.MoveLast()
   
  
positive.code:               hasValidState <- this.TryUpdateNext(this.InputCursor.Current, &value)
  #endif
                if hasValidState then 
                  this.CurrentKey <- this.InputCursor.CurrentKey
                  this.CurrentValue <- value
              hasValidState
            | Lookup.LE | Lookup.LT ->
              while not hasValidState && this.InputCursor.MovePrevious() do
  
negative.code:               hasValidState <- this.TryUpdatePrevious(this.InputCursor.Current, &value)
  #endif
                if hasValidState then
                  currentKey <- this.InputCursor.CurrentKey
                  currentValue <- value
              hasValidState
            | _ -> failwith "wrong lookup value"
        else false
  