anchor.diff:    Result := TNullableUnicodeString.Create();
   end;
   
  +procedure TNullableUnicodeString.Assign(aSource: TNullableUnicodeString);
  +begin
  +  if not aSource.IsNull then
  +    Self.Value := aSource.Value
  +  else
  +    Self.IsNull := true;
  +end;
  +
   end.
  
positive.code:       class function CreateNew(aValue: AnsiString): TNullableAnsiString; overload;
        class function CreateNew(): TNullableAnsiString; overload;
  
        property Value : AnsiString read GetValue write SetValue;
    end;
  
  
negative.code:   Result := TNullableString.Create();
  end;
  
  procedure TNullableString.Assign(aSource: TNullableString);
  begin
    if not aSource.IsNull then
      Self.Value := aSource.Value
    else
      Self.IsNull := true;
  end;
  
  { TNullableDouble }
  
  function TNullableDouble.GetValue: Double;
  