public void dedupeAllConflicts(TaskMonitor monitor) throws CancelledException {
		lock.acquire();
		try {
			List<DataType> conflictList = new ArrayList<>();
			int total = popuplateConflictList(conflictList, getRootCategory());
			monitor.initialize(total);
			int processed = 0;
			int replacements = 0;
			for (DataType conflictDt : conflictList) {
				monitor.checkCancelled();
				DedupedConflicts result = doDedupeConflicts(conflictDt);
				processed += result.processCnt;
				replacements += result.replaceCnt;
				monitor.setProgress(processed);
			}
			Msg.info(this, "Evaluated " + processed + " conflict types, replaced " + replacements +
				" base type conflicts");
		}
		finally {
			lock.release();
		}
	}
De-duplicate equivalent conflict datatypes which share a common base data type name and
are found to be equivalent.

@param monitor task monitor
@throws CancelledException if task is cancelled
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeManagerDB.java