Issue #2111
Issue #352 Closes #1720 The old checker would happily accept things like 'alt x { @some(a) { a } }'. It now properly descends into patterns, checks exhaustiveness of booleans, and complains when number/string patterns aren't exhaustive.
middle::check_alt does the work. Lots of changes to add default cases into alts that were previously inexhaustive.