anchor.diff:      Self.Add(aValue.Value);
   end;
   
  +procedure TNullableInteger.Subtract(const aValue: integer);
  +begin
  +  if Self.IsNull then
  +    Self.SetValue(-1 * aValue)
  +  else
  +    Self.SetValue(Self.Value - aValue);
  +end;
  +
  +procedure TNullableInteger.Subtract(const aValue: TNullableInteger);
  +begin
  +  if aValue.NotNull then
  +    Self.Subtract(aValue.Value);
  +end;
  +
   class function TNullableInteger.StringToVariant(const aValue: String): Variant;
   begin
     if IsNumeric(aValue, false) then
  
positive.code: begin
    if aValue.NotNull then
      Self.Add(aValue.Value);
  end;
  
  class function TNullableDouble.StringToVariant(const aValue: String): Variant;
  
negative.code:     procedure Add(const aValue : double); overload;
      procedure Add(const aValue : TNullableDouble); overload;
  
      procedure Subtract(const aValue : double); overload;
      procedure Subtract(const aValue : TNullableDouble); overload;
  
  
      class function StringToVariant(const aValue: String): Variant;
      class function VariantToString(const aValue: Variant; const aDisplayFormat : string): String;
  
  