anchor.diff:  procedure TNullableString.Assign(aSource: TNullableString);
   begin
     if not aSource.IsNull then
  -    Self.Value := aSource.Value
  -  else
  -    Self.IsNull := true;
  +    Self.Value:= aSource.Value
  +  else
  +    Self.IsNull:= true;
   end;
   
   procedure TNullableString.Assign(aSourceField: TField);
  
positive.code: begin
    if VarIsNull(aValue) then
    begin
      Result := Self.NotNull;
      Self.IsNull:= true
    end
    else
    begin
      if Self.IsNull then
        Result := true
      else
        Result := aValue <> FValue;
      if Result then
        Self.Value:= aValue;
    end;
  
negative.code: function TNullableString.GetValue: String;
  begin
    if (FIsNull) then
      Result:= ''
    else
      Result:= FValue;
  end;
  
  procedure TNullableString.SetValue(AValue: String);
  begin
    FValue:= aValue;
    FIsNull:= False;
  end;
  
  constructor TNullableString.Create();
  