Why the Error + Send and the (not so much useful) Error + Sync do not exist? Is it because of actual limits on impl overlapping/missing specialization?
The actual reason is I was playing a bit with rayon and error handling. I just needed the error type to be dyn Error + Send, but at the end I needed to use dyn Error + Send + Sync in order to use the try operator without spamming .map_err(|e| Box::new(e) as Box<dyn Error + Send>) everywhere.
Ok, back to the original discussion: could be this something overlooked? I think the "only dyn Send" can be useful when rayon or channels are used. I am still not sure about the "only dyn Sync" objects -- maybe in case of Pinned errors (but why)?
In case it looks like a reasonable feature, I will try to ask in the internals forum.
Yes, it looks like a legitimate request for me: you can even go as far as submitting a PR and get a discussion there, provided nobody has already done that yet.