Although no one is interfacing with this though, right? Everyone's only going to call `fail!` and then ask `if failure.is::<~str>` to see what happened I thought