<div dir="ltr"><div>Types associated with a protocol are not namespaced by the protocol, but rather by the protocol&#39;s adopters. As such, when two protocols declare a common associatedType, adoption of those protocols introduces undesirable ambiguity.<br></div><div><br></div><div>Given the understandable propensity of developers to arrive at similarly named types (T, for example), it is likely that this problem will reduce the compatibility of packages for reasons that may not be entirely clear to the package consumer.</div><div><br></div><div>Here is a demonstration of the issue. Apologies, I&#39;m a longtime reader of the list, but this is my first time posting, and I&#39;m not sure how best to format this. You may also find this example on Jira (<a href="https://bugs.swift.org/browse/SR-1065">https://bugs.swift.org/browse/SR-1065</a>).</div><div><br></div><div>```</div><div>protocol A {</div><div>    associatedtype T</div><div>    var aT: T { get }</div><div>}</div><div><br></div><div>protocol B {</div><div>    associatedtype T</div><div>    var bT: T { get }</div><div>}</div><div>```</div><div><br></div><div>T is ambiguous: &quot;Type C does not conform to protocol &#39;B&#39;.&quot;</div><div>```</div><div>class C: A, B {</div><div>    var aT = String()</div><div>    var bT = Int()</div><div>}</div><div>```</div><div><br></div><div><br></div><div>T is inferred unambiguously, compiles without error.</div><div>```</div><div>class C: A, B {</div><div>    var aT = String()</div><div>    var bT = String()</div><div>}</div><div>```</div><div><br></div><div>T is explicit, but problematic: &quot;Type C does not conform to protocol &#39;A&#39;.&quot;</div><div>```</div><div>class C: A, B {</div><div>    typealias T = Int</div><div>    var aT = String()</div><div>    var bT = Int()</div><div>}</div><div>```</div><div><br></div><div>I would greatly appreciate any advice or direction as to next steps. I have a proposal for resolving this in mind, but it seemed premature to offer it before finding some agreement that this was worth carrying forward.</div><div><br></div><div>Best regards,</div><div>Noah Blake</div></div>