<div dir="ltr">Wallacy&#39;s solution above is similar to how Rust handles a very similar situation. Rust errors out where there are conflicting implementations of trait requirements in the same &quot;scope&quot;. SeeĀ <a href="https://play.rust-lang.org/?gist=b7def3a2cd375ee80525&amp;version=stable" target="_blank">https://play.rust-lang.org/?gist=b7def3a2cd375ee80525&amp;version=stable</a> for an example.<div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 9, 2016 at 3:05 PM, Brent Royal-Gordon via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>&gt; Because you cannot solve the problem by revising your own code. You definitely have to change the protocols. If you have no way to change the protocols, you will have to drop either of them.<br>
&gt;<br>
&gt; My point is that it is the protocols&#39; programmer who should take care of it, not you. Or if you write the protocols, you should avoid this at the beginning.<br>
<br>
</span>Well, that&#39;s exactly the point. In a perfect world, where the compiler could read your mind and figure out that the two protocols are incompatible, you would want Swift to raise an error indicating that the two protocols can&#39;t be used together. But the compiler can&#39;t read your mind, so we have to decide if &quot;two unrelated protocols declare the same requirement&quot; is a strong enough signal on its own to conclude that something&#39;s wrong.<br>
<div><div><br>
<br>
--<br>
Brent Royal-Gordon<br>
Architechies<br>
<br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Trent Nadeau</div>
</div></div>