anchor.diff:        exit Key.hash xor Int;
       end;
   
  -    method copyWithZone(aZone: ^Foundation.NSZone): not nullable id;
  +    method copyWithZone(aZone: ^Foundation.NSZone): instancetype;
       begin
         result := new SITuple();
         result.Key := Key;
  
positive.code:   var lTID := {$IFDEF ISLAND}RemObjects.Elements.System.Thread.CurrentThreadID{$ELSE}Thread.CurrentThread.ThreadId{$ENDIF};
    var lTI: ThreadInfo;
    locking fLock do begin
      lTI := fThreads[lTID];
      if lTI = nil then begin
        lTI := new ThreadInfo;
        fThreads.Add(lTID, lTI);
      end;
    end;
    var lLastE := lTI.Items[lTI.Items.Count -1];
  
negative.code:   var lTID := {$IFDEF ISLAND}RemObjects.Elements.System.Thread.CurrentThreadID{$ELSE}Thread.CurrentThread.ThreadId{$ENDIF};
    var lTI: ThreadInfo;
    locking fLock do begin
      lTI := fThreads[Integer(lTID)];
      if lTI = nil then begin
        lTI := new ThreadInfo;
        fThreads.Add(Integer(lTID), lTI);
      end;
    end;
  
  