anchor.diff:  begin
     inherited Create();
     FName := AName;
  -  FElementValue := TCsvBaseElement.Create;
   end;
   
   destructor TCsvNamedElement.Destroy;
   begin
  -  FElementValue.Free;
     inherited Destroy;
   end;
   
  -procedure TCsvNamedElement.SetValue(const AValue: string);
  -begin
  -  FElementValue.Value := AValue;
  -  FValue := AValue;
  +function TCsvNamedElement.GetElementValue: TCsvBaseElement;
  +begin
  +  Result := TCsvBaseElement(Self);
   end;
   
   { TCsvObjectElement }
  
positive.code:   private
      FValue: string;
    public
      property Value: string read FValue write FValue;
    end;
  
    TCsvNamedElement = class(TCsvBaseElement)
    private
      FName: string;
      FElementValue: TCsvBaseElement;
    public
      constructor Create(const AName: string); virtual;
      destructor Destroy; override;
  
      procedure SetValue(const AValue: string);
  
      property Name: string read FName write FName;
      property ElementValue: TCsvBaseElement read FElementValue;
    end;
  
    TCsvObjectElement = class(TCsvBaseElement)
  
negative.code:   Result := FElements.TryGetValue(GetKey(AName), AObject);
  end;
  
  { TCsvBaseElement }
  
  procedure TCsvBaseElement.SetValue(const Value: string);
  begin
    FValue := Value;
  end;
  
  end.
  