oh yeah, one more thing: this doesn't add much complexity. rust has very few coercions, and ! -> any type is one of them. but that's pretty easy. and all that's really required. and this also means like, in your panic case, it's a simple coercion rather than solving unification at all call sites...