So I've changed the code up, and now stripped out the try. I should note that there's still some small chance that an error occurs -- if the user code raises something that confuses `as.character`, it'll become an error. That's a pretty unlikely corner, I think, so it shouldn't make a big difference.