I was just playing around with the new MutableRef and Ref types in some async code and realized that neither of those types conform to Sendable conditionally. I think both can and should safely add the conditional conformance. Similar to how the Span types conform to Sendable conditionally.
Ref
Is Copyable and provides multiple read-only views to memory. If the underlying type is Sendable then Ref should be safely Sendable as well.
MutableRef
Seems a bit tricker but I think is safe to conditionally conform as well since it's ~Copyable so only a single mutable ref can exist at any point in time. The compiler is already enforcing that you can't have overlapping concurrent access to var's and if it is stored as a let then the same reasoning as Ref applies.
@Alejandro and @Joe_Groff what do you think about this?