private static List<CategoryRecord> findInsertions(List<CategoryRecord> oldlist,
		List<CategoryRecord> newlist) {
		if (newlist == null && oldlist != null)
		{
			return null;							// Indicate we need to delete
		}
		if (newlist != null && oldlist == null) {
			return newlist;
		}
		final List<CategoryRecord> insert = new ArrayList<CategoryRecord>();
		int i=0;
		int j=0;
		while(i<oldlist.size() || j<newlist.size()) {
			if (j==newlist.size()) {
				return null;
			}
			else if (i==oldlist.size()) {
				insert.add(newlist.get(j));
				j += 1;
			}
			else {
				final CategoryRecord oldcat = oldlist.get(i);
				final CategoryRecord newcat = newlist.get(j);
				final int cmp = newcat.compareTo(oldcat);
				if (cmp < 0) {
					insert.add(newcat);
					j += 1;
				}
				else if (cmp == 0) {
					i += 1;
					j += 1;
				}
				else {
					return null;
				}
			}
		}
		return insert;
	}
Compare the set of categories that -this- and -op2- belong to
@param op2 is executable to compare with this
@return true if the categories are exactly the same
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/ExecutableRecord.java