private boolean comprisesSatisfied(TaggedInfo matchBinding) { List<Type> comprisesTags = matchBinding.getComprisesTags(); // add this tag because it needs to be included too comprisesTags.add(matchBinding.getTagType()); // check that each tag is present for (Type t : comprisesTags) { if (containsTagBinding(cases, t)) continue; // tag wasn't present return false; } // we made it through them all return true; }