<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">Thank you for pointing me to the right reading.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">I just read both pages:</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md</a></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><a href="https://github.com/apple/swift/blob/master/docs/Generics.rst">https://github.com/apple/swift/blob/master/docs/Generics.rst</a></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">I’ll have to rewrite my proposal a bit. Btw. is there any better name for Ceylon `Any&lt;&gt;`? Maybe `Either&lt;&gt;`?</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">`Any&lt;T, U&gt;` - "Any type that conforms to T and U“&nbsp;</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">Could someone explain to me what existentials suppose to be? I didn’t get that part from the article, where everything else made somehow sense to me. :)</div> <br> <div id="bloop_sign_1463250269072601088" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">--&nbsp;<br>Adrian Zubarev<br>Sent with Airmail</div></div> <br><p class="airmail_on">Am 14. Mai 2016 bei 20:21:04, Austin Zheng via swift-evolution (<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>



<title></title>


<div dir="ltr">Yes, this is theoretically possible, but why is it
useful? (I am genuinely curious.)&nbsp;
<div><br></div>
<div>If the intention is to allow B to be a user-defined extension
point for T, this goes back to the core team's arguments (in the
thread about optional protocol requirements) about why having
checking for conformance to some requirement at the use site is a
suboptimal idea.</div>
<div><br></div>
<div>If the intention is to make the type system as expressive as
possible, the core team has already ruled out a number of features
(user-defined variance on generics, generic protocols) because they
don't believe in their general applicability.</div>
<div><br></div>
<div>Austin</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sat, May 14, 2016 at 11:13 AM,
Vladimir.S <span dir="ltr">&lt;<a href="mailto:svabox@gmail.com" target="_blank">svabox@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
FWIW, yes, protocols available for struct are known at
compile-time, but could be unknown at the *moment of writing* the
code.<br>
<br>
What I mean:<br>
<br>
Step 1. I write source code:<br>
<br>
protocol A {}<br>
protocol B {}<br>
struct S:A {}<br>
<br>
func f(a: A) {<br>
&nbsp; if a is struct&lt;S,B&gt; {...} // I expect that S could be
conformed to B<br>
}<br>
<br>
Step 2. I give my code to someone, who can do somewhere in his
project:<br>
<br>
extension S:B{..}
<div class="HOEnZb">
<div class="h5"><br>
<br>
<br>
<br>
On 14.05.2016 7:06, Austin Zheng via swift-evolution wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">1.
struct&lt;SomeConcreteStruct, Protocol1, Protocol2&gt;. In this
case the<br>
struct&lt;...&gt; representation is unnecessary; the protocols that
are available<br>
to the user are known at compile-time, and structs can't have
subtypes that<br>
conform to additional protocols like classes can. There is an
example<br>
marked "func boo(value: struct&lt;SomeStruct&gt;) /* equivalent to
*/ func<br>
boo(value: SomeStruct)"; my question is why having more than two
ways to<br>
express the same idea makes the language better, easier to use,
etc.<br>
<br></blockquote>
</div>
</div>
</blockquote>
</div>
<br></div>


_______________________________________________<br>swift-evolution mailing list<br>swift-evolution@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-evolution<br></div></div></span></blockquote></body></html>