Bugs You'll Probably Only Have in Rust
>  Making unsafe a big scary "all bets are off" button is only compelling if most of our users don't need to use that button. Rust is trying to be a language for writing concurrent applications, so sharing your type between threads requiring unsafe would be really bad.<p>It would be neat if we could decompose unsafe like so "unsafe[this_feature,that_feature] {}".  The unqualified "unsafe" could still refer to a global "free reign", but you could opt-in to "only let me violate these specific rules."  It would be a hint to maintainers and might help make the std lib and other core libraries be/remain defect-free.<p>Another interesting "oh shoot" w/unsafe that I'm curious about: when I intentionally/unintentionally alias two variables in my unsafe block, this will invalidate assumptions made elsewhere in safe code.  This is my unsafe block's bug, but it seems like something that could take a good while debugging to attribute back to my unsafe block.  I don't think there's a good resolution to this one other than perhaps documentation/best practices.