private void removeEmptyFragments(ProgramModule module, ArrayList<String> fragmentNameList) {
		Group[] groups = module.getChildren();
		for (Group group : groups) {
			if (group instanceof ProgramFragment) {
				String name = group.getName();
				if (!fragmentNameList.contains(name)) {
					try {
						module.removeChild(name);
					}
					catch (NotEmptyException e) {
						throw new AssertException("Could not remove " + name + ": " + e);
					}
				}
			}
			else {
				removeEmptyFragments((ProgramModule) group, fragmentNameList);
			}
		}
	}
Called when we need to know which tree changed (not enough to know
that the structures are different).
@param root1 root of the original program 
@param root2 root for either the source tree or the destination tree
@return true if there was no original root, OR the modification
numbers for the original tree and tree containing root do not match
Ghidra/Features/Base/src/main/java/ghidra/app/merge/tree/ProgramTreeMergeManager.java