Sure, but that isn’t the case today, so I’m not sure why the compiler effectively pretend that B is Sync. My reasoning on this is that B is not Sync, and therefore the trait A shouldn’t be implemented for it, due to the generic implementation requiring a Sync type. Thus, the specialized implementation of A for B shouldn’t be conflicting with anything.