`noshare` cannot be inferred, because that would prevent `Mutex` from being written. `Mutex` needs to be `Share`, but it also needs to be `SafelyMutable`. It's safe to be `Share` because the implementation of `Mutex` is designed to enforce this safety.