boolean determineSignatureConflicts(Function[] functions, TaskMonitor monitor)
			throws CancelledException {
		monitor.checkCancelled();
		Address entry = (functions[LATEST] != null) ? functions[LATEST].getEntryPoint()
				: ((functions[MY] != null) ? functions[MY].getEntryPoint()
						: functions[ORIGINAL].getEntryPoint());
		boolean latestChangedParamSig = !isSameParamSig(functions[ORIGINAL], functions[LATEST]);
		boolean myChangedParamSig = !isSameParamSig(functions[ORIGINAL], functions[MY]);
		boolean latestChangedParamInfo = !isSameParamInfo(functions[ORIGINAL], functions[LATEST]);
		boolean myChangedParamInfo = !isSameParamInfo(functions[ORIGINAL], functions[MY]);
		boolean latestChangedReturn = functionReturnDiffers(functions[ORIGINAL], functions[LATEST]);
		boolean myChangedReturn = functionReturnDiffers(functions[ORIGINAL], functions[MY]);
		boolean sameSig = isSameParamSig(functions[LATEST], functions[MY]);
		if (sameSig) {
			if (myChangedParamInfo || myChangedReturn) {
				if (latestChangedParamInfo || latestChangedReturn) {
					return true;
				}
				// Auto-merge my parameter and return changes.
				getMergeMy().replaceFunctionParameters(entry, monitor);
			}
			// ELSE only the latest could have changed param info & we have those changes.
		}
		else if (latestChangedParamSig) {
			if (myChangedParamSig || myChangedParamInfo || myChangedReturn) {
				saveFunctionDetailConflict(functions, FUNC_SIGNATURE);
			}
			// ELSE Only latest parameter signature changed so already has new signature.
		}
		else if (myChangedParamSig) {
			if (latestChangedParamInfo || latestChangedReturn) {
				saveFunctionDetailConflict(functions, FUNC_SIGNATURE);
			}
			else {
				// Only my parameter signature changed so autoMerge my parameters.
				getMergeMy().replaceFunctionParameters(entry, monitor);
			}
		}
		return false;
	}
Compares the functions (Latest, Original, My) to determine if a parameter signature 
conflict exists and auto-merges any signature change if possible, otherwise 
the {@link #FUNC_SIGNATURE} conflict flag may be set for the current function
signaling the merger for later resolution and processing.
@param functions the matching set of functions from Result, Latest, My, and Original.
@param monitor the merge status monitor
@return true if signatures match and a check should be performed for parameter detail 
conflicts, otherwise false is returned and the {@link #FUNC_SIGNATURE} conflict flag
may be set for the current function
@throws CancelledException if merge has been cancelled.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/AbstractFunctionMerger.java