anchor.diff:  procedure TNamedCollectionItem.SetDisplayName(const Value: string);
   begin
     inherited SetDisplayName(Value);
  +  if Assigned(Collection) then
  +    (Collection as THashedCollection).ItemNameChanged(Self, FDisplayName, Value);
     FDisplayName := Value;
   end;
   
  
positive.code:   FHash.Remove(Item);
  end;
  
  procedure THashedCollection.Notify(Item: TCollectionItem;
    Action: TCollectionNotification);
  begin
  
negative.code: 
      procedure ItemAdded(Item: TCollectionItem);
      procedure ItemRemoved(Item: TCollectionItem);
      procedure ItemNameChanged(Item: TCollectionItem; AOldName: String; ANewName: String);
    protected
      procedure Notify(Item: TCollectionItem; Action: TCollectionNotification);
        override;
  