anchor.diff:  { TWorkflowHelper }
   
   class function TWorkflowHelper.CalcProjectSummary(StateHolder : TWorkflowStateHolder;
  -  Project : TFileName) : TArray<TSummaryItem>;
  +  const Project : TFileName) : TArray<TSummaryItem>;
   begin
     Result := CalcSummary(StateHolder, Project);
   end;
   
   class function TWorkflowHelper.CalcSummary(StateHolder : TWorkflowStateHolder;
  -  ProjectFilter : String) : TArray<TSummaryItem>;
  +  const ProjectFilter : String) : TArray<TSummaryItem>;
   var
     arrSummary : array [Low(TFixInsightMessageType)..High(TFixInsightMessageType)] of TSummaryItem;
   
  
positive.code:   Result := CalcSummary(StateHolder, String.Empty);
  end;
  
  class function TWorkflowHelper.FormatReportTitle(StateHolder : TWorkflowStateHolder) : String;
  begin
    Result := TPath.GetFileName(StateHolder.FConfigData.InputFileName);
  
negative.code:           for F in FProjects do
              if Assigned(FMessages[F]) then
              begin
                FReportBuilder.BeginProjectSection(
                  TWorkflowHelper.FormatProjectTitle(StateHolder, F),
                  TWorkflowHelper.CalcProjectSummary(StateHolder, F)
                );
  
                for Msg in FMessages[F] do
                  FReportBuilder.AppendRecord(TWorkflowHelper.MakeRecord(Msg));
  