Boolean getCachedEquivalence(DataTypeDB dataTypeDB, DataType dataType) {
		EquivalenceCache cache = equivalenceCache.get();
		if (cache == null) {
			cache = new EquivalenceCache();
			equivalenceCache.set(cache);
		}
		long key = getEquivalenceKey(dataTypeDB, dataType);
		Boolean value = cache.getValue(key);
		if (value == null) {
			// null value indicates isEquivalent in progress between the two
			// datatypes - perform simplified equivalence check
			if (cache.contains(key)) {
				if (dataType.getUniversalID().equals(getUniversalID())) {
					return true;
				}
				return DataTypeUtilities.equalsIgnoreConflict(dataTypeDB.getPathName(),
					dataType.getPathName());
			}
			cache.putValue(key, null); // indicates isEquivalent in progress
		}
		return value;
	}
Check for cached equivalence of a type contained within this datatype manager
against another datatype. Every call to this method when {@code null} is
returned must be following by an invocation of
{@link #putCachedEquivalence(DataTypeDB, DataType, boolean)} once an
equivalence determination has been made. The number of outstanding calls to
this method will be tracked. When the outstanding call count returns to zero
the cache will be cleared. <br>
A repeated call for the same datatype pair, while the equivalence is unknown,
will return a simplified equivalence check based upon
{@link DataType#getUniversalID()} or path alone.

@param dataTypeDB datatype associated with this datatype manager
@param dataType   other datatype instance
@return true, false or {@code null} if unknown. A {@code null} value mandates
        that the caller make a determination and put the result into the
        cache when known (see
        {@link #putCachedEquivalence(DataTypeDB, DataType, boolean)}.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeManagerDB.java