actually fix PR 14102

This commit definitely takes the position that
"beautiful" code is less important than reasonable
error messages; better if the code were refactored
so the names flow through it more gracefully
Add access to the failure continuation in `match`.
fix bug in 82bb5ba4c8; also add test case
more progress
now about twice the speed of master