private boolean compositeDataTypeWasChanged(Composite c1, Composite c2) {
		DataTypeManager dtm1 = c1.getDataTypeManager();
		DataTypeManager dtm2 = c2.getDataTypeManager();

		PackingType packingType = c1.getPackingType();
		AlignmentType alignmentType = c1.getAlignmentType();

		if ((packingType != c2.getPackingType()) || (alignmentType != c2.getAlignmentType()) ||
			(packingType == PackingType.EXPLICIT &&
				c1.getExplicitPackingValue() != c2.getExplicitPackingValue()) ||
			(alignmentType == AlignmentType.EXPLICIT &&
				c1.getExplicitMinimumAlignment() != c2.getExplicitMinimumAlignment())) {
			return true;
		}

		int c1ComponentCnt = getNumDefinedComponents(c1);
		int c2ComponentCnt = getNumDefinedComponents(c2);
		if (c1ComponentCnt != c2ComponentCnt) {
			return true;
		}

		boolean checkOffsets = false;

		if (c1 instanceof Structure) {
			if (!((Structure) c1).isPackingEnabled()) {
				if (c1.getNumComponents() != c2.getNumComponents()) {
					return true;
				}
				checkOffsets = true;
			}
		}

		DataTypeComponent[] c1Components = c1.getDefinedComponents();
		DataTypeComponent[] c2Components = c2.getDefinedComponents();
		for (int i = 0; i < c1ComponentCnt; i++) {
			DataTypeComponent dtc1 = c1Components[i];
			DataTypeComponent dtc2 = c2Components[i];
			if (isChangedComponent(dtc1, dtc2, dtm1, dtm2, checkOffsets)) {
				return true;
			}
		}
		return false;
	}
Process categories that were deleted in MY program, but are not
conflicts, i.e., not renamed, moved, or deleted in LATEST.
@param id category ID
Ghidra/Features/Base/src/main/java/ghidra/app/merge/datatypes/DataTypeMergeManager.java