anchor.diff:  uses
     SysUtils {$IFDEF FPC}, LazUtf8{$ENDIF};
   
  +{ TNullablesList }
  +
  +constructor TNullablesList.Create;
  +begin
  +  FList:= TList.Create;
  +end;
  +
  +destructor TNullablesList.Destroy;
  +begin
  +  FList.Free;
  +  inherited Destroy;
  +end;
  +
  +function TNullablesList.Count: integer;
  +begin
  +  Result := FList.Count;
  +end;
  +
  +function TNullablesList.Get(const aIndex: integer): TAbstractNullable;
  +begin
  +  Result := TAbstractNullable(FList.Items[aIndex]);
  +end;
  +
  +function TNullablesList.AlmostOneChanged: boolean;
  +var
  +  i : integer;
  +begin
  +  Result := false;
  +  for i := 0 to Self.Count -1 do
  +  begin
  +    Result := Self.Get(i).TagChanged;
  +    if Result then
  +      exit;
  +  end;
  +end;
  +
  +procedure TNullablesList.Add(const aNullableItem: TAbstractNullable);
  +begin
  +  FList.Add(aNullableItem);
  +end;
  +
   { TNullableDoubleRecord }
   
   procedure TNullableDoubleRecord.CreateAsNull;
  
positive.code: interface
  
  uses
    db, Graphics, variants, math,
    mUtility, mMathUtility, mFloatsManagement;
  
  type
  
negative.code:     property TagChanged: Boolean read FTagChanged;
    end;
  
    { TNullablesList }
  
    TNullablesList = class
    strict private
      FList : TList;
    public
      constructor Create;
      destructor Destroy; override;
  
      function Count : integer;
      function Get(const aIndex : integer): TAbstractNullable;
      function AlmostOneChanged: boolean;
      procedure Add(const aNullableItem: TAbstractNullable);
    end;
  
    { TNullableString }
  
    TNullableString = class(TAbstractNullable)
  