When Andrei and I came up with the rules for:mutable const shared const shared immutableand which can be implicitly converted to what, so far nobody has found a fault in those rules...
Here's one: shared -> const shared shouldn't be allowed. Mutable aliasing in single-threaded code is bad enough as it is.