private void compare(FunctionDefinition pre, FunctionDefinition post) {
		compare(pre.getReturnType(), post.getReturnType());

		ParameterDefinition[] preArgs = pre.getArguments();
		ParameterDefinition[] postArgs = post.getArguments();
		if (preArgs.length != postArgs.length) {
			return;
		}

		for (int i = 0; i < preArgs.length; i++) {
			ParameterDefinition prePD = preArgs[i];
			ParameterDefinition postPD = postArgs[i];

			compare(prePD.getDataType(), postPD.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