private static void merge(List<BitGroup> list, BitGroup bitGroup) {
		Iterator<BitGroup> it = list.iterator();
		while (it.hasNext()) {
			BitGroup next = it.next();
			if (bitGroup.intersects(next)) {
				bitGroup.merge(next);
				it.remove();
			}
		}
		list.add(bitGroup);
	}
This is a static utility class used to partition a set of long values into as many
non-intersecting BitGroups as possible.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/EnumValuePartitioner.java