private void compare(Structure pre, Structure post) {
		for (DataTypeComponent dtc : pre.getComponents()) {
			DataType preDTCType = dtc.getDataType();
			DataTypeComponent postDTC = post.getComponentAt(dtc.getOffset());
			if (postDTC == null) {
				continue;
			}

			String dtcFN = dtc.getFieldName();
			String postFN = postDTC.getFieldName();
			if (postFN != null && postFN.equals(dtcFN)) {
				compare(preDTCType, postDTC.getDataType());
			}
		}
	}
Object instance identity map used to prevent recursive loops when following
DataType pointers and such.  DataType path/name mapping can't be used because
there is no guarantee that impl DataType's have unique names.
<p>
Using a Map as a Set because there is no IdentityHashSet. (the value of the map entry
is not used, just the key set)
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DataTypeGraphComparator.java