<div style="white-space:pre-wrap">Guys, I think we&#39;ve got quit some positive feedback for this.<br><br>Maybe it&#39;s time to go to proposal stage? I personally will back it 100%.<br><br>If there is anything to add at this stage?</div><br><div class="gmail_quote"><div dir="ltr">On Mon, 5 Dec 2016 at 21:46 Adrian Zubarev via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="gmail_msg"><div class="m_1599935291702242815bloop_markdown gmail_msg"><p class="gmail_msg">Syntactic sugar could only solve the first issue because it would create a generic type that allows you to reuse your protocol with associated types in a way like <code class="gmail_msg">ConstructibleFromValue&lt;Float&gt;</code> would.</p>

<p class="gmail_msg">The idea is simple, but there are a few disadvantages that makes it less worth to implement.</p>

<hr class="gmail_msg">

<p class="gmail_msg">If I should describe it in a different way, I’d prefer something like this instead:</p>

<pre class="gmail_msg"><code class="m_1599935291702242815swift gmail_msg">typealias GenericCollection&lt;E&gt; = Collection where Iterator.Index == Int, Element == E

//====================================//

protocol ConstructibleFromValue {
  associatedtype ValueType
  init(_ value: ValueType)
}

typealias ConstructibleFrom&lt;V&gt; = ConstructibleFromValue where ValueType == V

// In both cases I want to be able to conform to this macro/shortcut.
// I don&#39;t speak about existentials here.

protocol MyType {}

extension MyType : ConstructibleFrom&lt;Float&gt; {
    init(_ value: Float) { ... }
}

extension MyType : ConstructibleFrom&lt;Double&gt; {
    init(_ value: Double) { ... }
}
</code></pre>

<p class="gmail_msg"></p></div><div class="m_1599935291702242815bloop_original_html gmail_msg"></div></div><div style="word-wrap:break-word" class="gmail_msg"><div class="m_1599935291702242815bloop_original_html gmail_msg"><div id="m_1599935291702242815bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="gmail_msg"><br class="gmail_msg"></div> <br class="gmail_msg"> <div id="m_1599935291702242815bloop_sign_1480966298300169984" class="m_1599935291702242815bloop_sign gmail_msg"><div style="font-family:helvetica,arial;font-size:13px" class="gmail_msg">-- <br class="gmail_msg">Adrian Zubarev<br class="gmail_msg">Sent with Airmail</div></div> <br class="gmail_msg"></div></div><div style="word-wrap:break-word" class="gmail_msg"><div class="m_1599935291702242815bloop_original_html gmail_msg"><p class="m_1599935291702242815airmail_on gmail_msg">Am 3. Dezember 2016 um 21:21:23, Xiaodi Wu (<a href="mailto:xiaodi.wu@gmail.com" class="gmail_msg" target="_blank">xiaodi.wu@gmail.com</a>) schrieb:</p> <blockquote type="cite" class="m_1599935291702242815clean_bq gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><span style="color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);display:inline!important;float:none" class="gmail_msg">I&#39;m not sure I understand. The first feature in the generics manifesto is parameterized protocols so that you can have, say, ConstructibleFrom&lt;Float&gt; and ConstructibleFrom&lt;Int&gt; and the ability to conform to the same protocol in two ways. The second feature is explained as a request for generalized existentials. I don&#39;t understand how syntactic sugar solves either issue.</span></div></span></blockquote></div></div><div style="word-wrap:break-word" class="gmail_msg"><div class="m_1599935291702242815bloop_original_html gmail_msg"></div><div class="m_1599935291702242815bloop_markdown gmail_msg"><p class="gmail_msg"></p></div></div>_______________________________________________<br class="gmail_msg">
swift-evolution mailing list<br class="gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="gmail_msg">
</blockquote></div>