Puzzle: Why is Mutex<T> always Sync, but RwLock<T> is only Sync for T: Sync?
Fun Rust puzzle of the day: Why is Mutex<T> always Sync (even if T is not Sync), but RwLock<T> is only Sync for T: Sync?
https://doc.rust-lang.org/std/sync/struct.RwLock.html#impl-Sync-for-RwLock%3CT%3E
What bad thing happens if we make RwLock<T> always Sync even if T is not Sync?