In "Programming Rust, 2nd Edition" by Jim Blandy, Jason Orendorff, Leonora F.S. Tindall on page 520 there is a graph that shows Send and Sync with overlapping circles with Sync totally subsumed by Send.
This leads me to believe that everything that implements Sync must also implement Send, but this example from page 561 and everything I've seen always specifies them both seperately,
type GenericError = Box<dyn std::error::Error + Send + Sync + 'static>
Why if 100% of things that implement Sync are also Send, is Sync not a subtrait of Send? Why trait bounds need to specify both? Why do people mark both. Is there any usecase of something to be Sync and not Send? In what case, can you share a mutable reference with another thread, but not grant ownership to that other thread?
