<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Thanks for clarifying! In that case I’d prefer Ceylon’s syntax as it seems to express the ideas with less room for confusion (but this probably belongs into another thread).&nbsp;<div class=""><br class=""></div><div class="">-Thorsten</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 11.02.2016 um 18:38 schrieb Jordan Rose &lt;<a href="mailto:jordan_rose@apple.com" class="">jordan_rose@apple.com</a>&gt;:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">No, both Brent and I were proposing replacing the "protocol" in "protocol&lt;UITableViewDelegate, UITableViewDataSource&gt;" with a different word. Brent's word was "all", as in "conforms to <u class="">all</u>&nbsp;of these"; mine (and JoeG's?) was "any", as in "<u class="">any</u> type conforming to these". So <i class="">both</i>&nbsp;of them correspond to Ceylon's "&amp;".</div><div class=""><br class=""></div><div class="">(The other motivation for "any" or "Any" was by analogy with 'AnyObject' and the existing 'Any'; the latter simply becomes a short form for 'Any&lt;&gt;'.)</div><div class=""><br class=""></div><div class="">With the word "protocol" no longer in the type, we could then extend it to include a single class bound as well as protocol bounds.</div><div class=""><br class=""></div><div class="">Jordan</div><div class=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 11, 2016, at 0:39 , Thorsten Seitz &lt;<a href="mailto:tseitz42@icloud.com" class="">tseitz42@icloud.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Jordan, I'm not sure if I understood you correctly, do you mean to use &nbsp;<br class=""><br class=""> &nbsp;&nbsp;&nbsp;all&lt;A, B&gt; for intersection types (Ceylon's A &amp; B), i.e. a type conforming to all listed types <br class=""> &nbsp;&nbsp;&nbsp;any&lt;A, B&gt; for union types &nbsp;(Ceylon's A | B), i.e. a type conforming to any of the listed types<br class=""><br class="">That would be fine, too, I think, while a bit heavier than Ceylon's syntax (though I seem to remember from another thread that there was a problem with using Ceylon's syntax in Swift, though the reason escapes me at the moment).<br class=""><br class="">-Thorsten <br class=""><br class=""><blockquote type="cite" class="">Am 10.02.2016 um 18:26 schrieb Jordan Rose via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt;:<br class=""><br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">On Feb 10, 2016, at 5:00 , Brent Royal-Gordon via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class="">So, I definitely think there is room for improvement here… how about recycling the inheritance syntax?<br class=""><br class="">let controller: (UIViewController, UITableViewDatasource)<br class=""></blockquote><br class="">This declares a tuple containing a UIViewController and a UITableViewDataSource.<br class=""><br class=""><blockquote type="cite" class="">I added the braces because it would be really when you add the question mark for an optional value; an alternative for this case would be<br class=""><br class="">let controller: Optional&lt;UIViewController, UITableViewDatasource&gt;<br class=""></blockquote><br class="">This attempts to declare an optional with two generic types, which doesn't work because Optional only has one type parameter. (But other types, like Dictionary, *do* take two type parameters.)<br class=""><br class="">Swift does already have a syntax for declaring that a type must conform to two (or more!) protocols:<br class=""><br class=""> &nbsp;&nbsp;let controller: protocol&lt;UITableViewDataSource, UITableViewDelegate&gt;<br class=""><br class="">I think this could probably be extended to support one class type as well, perhaps with a new name:<br class=""><br class=""> &nbsp;&nbsp;let controller: all&lt;UIViewController, UITableViewDataSource&gt;<br class=""></blockquote><br class="">We've been calling it "any" or "Any" (as in "any instance that is-a UIViewController and is-a UITableViewDataSource"), but I think this is the direction we've been talking about over here.<br class=""><br class="">(Not that syntax bikeshedding can't still be useful.)<br class=""><br class="">Jordan<br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></blockquote></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></body></html>