anchor.diff:  procedure TNullableColor.InternalSetValue(AValue: TColor);
   begin
     FValue:= aValue;
  -  SetIsNull(false);
  +  InternalSetIsNull(false);
   end;
   
   constructor TNullableColor.Create();
  
positive.code:     if Result then
        Self.InternalSetValue(aValue);
    end;
    SetTagChanged(Result or GetTagChanged);
  end;
  
  function TNullableString.AsVariant: Variant;
  
negative.code:   strict private
      FTagChanged: Boolean;
      FIsNull: Boolean;
      FIsUnassigned: Boolean;
      procedure SetIsNull(aValue : Boolean);
      function GetIsUnassigned: Boolean;
      procedure SetIsUnassigned(AValue: Boolean);
    protected
      function GetNotNull: Boolean;
      function GetTagChanged: Boolean; virtual;
      procedure SetTagChanged (aValue : Boolean); virtual;
      function GetIsNull : Boolean; virtual;
      procedure InternalSetIsNull(aValue : Boolean); virtual;
    public
      constructor Create(); virtual;
      function AsVariant: Variant; virtual; abstract;
  