changed `error`s to `panic`s for better reporting

Also squashed a couple incomplete patterns when they came up, but
haven't done a full check for all of them.