I triggered a problem like that when I was testing this code, which is why the `vals` in this function are passed through to `tc-error` instead of formatted here (avoiding problems when a user writes the type `(quote ~a)`). 

This seems to work given the assumption that neither the base `msg`, the `more` message string, nor the `field` strings have format directives. Since these are all under the control of us, the TR implementors, this seems fine.