public boolean areEquivalentFunctionSignatures(FunctionDefinition definition,
			FunctionSignature signature) {

		if ((DataTypeUtilities.equalsIgnoreConflict(signature.getName(), definition.getName())) &&
			DataTypeUtilities.isSameOrEquivalentDataType(definition.getReturnType(),
				signature.getReturnType()) &&
			signature.getCallingConventionName().equals(definition.getCallingConventionName()) &&
			(definition.hasVarArgs() == signature.hasVarArgs())) {
			ParameterDefinition[] sigargs = signature.getArguments();
			ParameterDefinition[] defArgs = definition.getArguments();
			if (sigargs.length == defArgs.length) {
				for (int i = 0; i < sigargs.length; i++) {
					if (!defArgs[i].isEquivalent(sigargs[i])) {
						return false;
					}
					if (!defArgs[i].getName().equals(sigargs[i].getName())) {
						return false;
					}
				}
				return true;
			}
		}
		return false;
	}
Method to compare the given FunctionDefinition data type with the given FunctionSignature to
see if they are equivalent (ie same name, same return type, same param types, same param names,
same calling convention, same hasVarArgs flag ...
@param definition the given FunctionDefinition data type
@param signature the given FunctionSignature
@return true if the two are equivalent, false other wise
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java