Why doesn't eg `extension Array<Int> { ... }` compile even though using a typealias does?

The inconsistency you are facing is part of what is being discussed in the lightweight same-type requirements for primary associated types thread. It's not the main topic of discussion, however it was discussed at one point iirc. Sadly I cannot find back the posts explicitly mentioning that inconsistency.

4 Likes