What bothers me is that even if you add
extension Q {
var id2: String { id }
}
(2 right) remains the same (I don't think it should). Q.id2
is used, but id
in that context is still P
witness, not Q
. And I couldn't figure out the proper explanation. Since in this case (2 left) and (2 right) should have about the same amount of context.