anchor.diff:    TmCSVBuilder = class
     strict private
       FDelimiter: Char;
  -    FQuoteChar: Char;
  +    FQuoteChar: String;
       FLineEnding: String;
       FFilename : String;
       FExtStream : TStream;
       FOwnedFileStream : TFileStream;
       FUTF8 : boolean;
       FCurrentRow: String;
  +    FIsNewRow: boolean;
       function CheckFileStream : TStream;
  +    procedure StartNewRow;
     public
       constructor Create;
       destructor Destroy; override;
  
positive.code:     raise Exception.Create('Missing file stream. Call StartWrite before.');
  end;
  
  constructor TmCSVBuilder.Create;
  begin
    FDelimiter := ',';
  
negative.code: begin
    if FCurrentRow <> '' then
      AppendRow;
    FreeAndNil(FOwnedFileStream);
  end;
  
  procedure TmCSVBuilder.AppendCell(const aValue: String);
  begin
    if FIsNewRow then
    begin
      FCurrentRow:= aValue;
      FIsNewRow := false;
    end
    else
      FCurrentRow := FCurrentRow + FDelimiter + aValue;
  end;
  
  procedure TmCSVBuilder.AppendCell(const aValue: TAbstractNullable);
  