anchor.diff:      property Duplicates: TDuplicates
         read FDuplicates
         write FDuplicates;
  +
  +    property CustomIndexOf: TOnCustomIndexOf
  +      read FCustomIndexOf
  +      write FCustomIndexOf;
     end;
   
   implementation
  
positive.code: 
    TCommonRecordList<T: record> = class(TList<T>)
    public type
      TOnForEach = procedure (AIndex: integer;
                              var AItem: T;
                              var ABreak: boolean) of object;
    private
      FDuplicates: TDuplicates;
  
      procedure ClearItemProc(AIndex: integer;
                              var AItem: T;
  
negative.code:     end;
  end;
  
  function TCommonRecordList<T>.IndexOf(constref AValue: T): SizeInt;
  begin
    if Assigned(FCustomIndexOf) then
      Result := FCustomIndexOf(AValue)
    else
      Result := inherited IndexOf(AValue);
  end;
  
  end.
  
  