<div dir="ltr"><div>==Motivation==</div><div><br></div><div>protocol From {</div><div>    associatedtype FromType</div><div>    init(_ value: FromType)</div><div>}</div><div><br></div><div>The problem is, one type cannot implement multiple From &quot;conversions&quot;.</div><div><br></div><div>==Proposed solution==</div><div><br></div><div>Allow specifying all associated types using generic syntax.</div><div><br></div><div>extension Int : From&lt;Float&gt; { }</div><div>extension Int : From&lt;Double&gt; { }</div><div><br></div><div>This is only allowed in conformance declarations.</div><div><br></div><div>==Future directions==</div><div><br></div><div>We can replace all *Convertible protocols with From and Into, which will be defined similarly to Rust.</div><div><br></div><div>- Anton</div></div>