Based on the diagram above, it seems that all types that impl Sync also impl Send. However, the MutexGuard type seems to defy this sort of assertion given that that we see !Send: MutexGuard in std::sync - Rust'_,+T%3E
The diagram is misleading. Sync does not imply Send, as you note for MutexGuard. There are other examples where you might want this (e.g. OpenSHMEM in funneled mode).