anchor.diff:    Result := FLD_REMAINING + IntToStr(aIndex + 1);
   end;
   
  -procedure TmUprightDatum.SetUpright(const aIndex: byte; const aValue: double);
  -begin
  -  FUprights[aIndex] := aValue;
  -end;
  -
  -function TmUprightDatum.GetUpright(const aIndex: byte): double;
  +function TmUprightDatum.GetUpright(const aIndex: byte): TNullableDouble;
   begin
     Result := FUprights[aIndex];
   end;
  
positive.code:   FKey.Free;
    for i := 0 to MAX_NUM_OF_VALUES - 1 do
    begin
      FLimits [i].Free;
      FRemainings[i].Free;
    end;
  end;
  
  constructor TmUprightEvent.Create;
  var
    i : integer;
  begin
  
negative.code:     FReference : TObject;
      FOwnsReference : boolean;
    public
      constructor Create(const aFractionalPartDigits : byte);
      destructor Destroy; override;
      function CompareTo (aOther : TmUprightEvent) : integer;
      function GetValue (const aIndex : byte) : TNullableDouble;
  