middle::check_alt does the work. Lots of changes to add default cases into alts that were previously inexhaustive.