<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">It is one of the items in the Generics Manifesto, and we had a discussion thread with a proposal on this already, however halted for being an addictive feature. Anyway, aren't discussions on post Swift 3 matters preferred to start on Aug 1?</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Hart's proposal</div><div class=""><a href="https://github.com/hartbit/swift-evolution/blob/master/proposals/XXXX-powerful-constraints-associated-types.md" class="">https://github.com/hartbit/swift-evolution/blob/master/proposals/XXXX-powerful-constraints-associated-types.md</a></div><div class=""><br class=""></div><span class="">[swift-evolution] [Proposal] More Powerful Constraints&nbsp;for&nbsp;Associated Types<br class=""></span><span class=""></span><span class=""><a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160502/016354.html" class="">https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160502/016354.html</a></span><div class=""><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Regards,</div><div class="">Anders</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On 29 Jul 2016, at 10:17 AM, Susan Cheng via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">Hello swift c<span style="white-space: pre-wrap;" class="">ommunity,</span></div><div class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></div><div class=""><font class=""><span style="white-space:pre-wrap" class="">I want to i</span></font>ntroduce a proposal to allow&nbsp;constraints on&nbsp;associatedtype.&nbsp;</div><div class="">I found a bug report(<a href="https://bugs.swift.org/browse/SR-1466" class="">https://bugs.swift.org/browse/SR-1466</a>) and it's due to without constraints on associatedtype itself.</div><div class=""><br class=""></div><div class="">This force&nbsp;us always have to write the redundant constraints like&nbsp;<span style="font-family:menlo;font-size:11px" class="">Indices.Iterator.Element == Index</span>&nbsp;or&nbsp;<span style="font-family:menlo;font-size:11px" class="">Indices.SubSequence.Iterator.Element == Index</span>&nbsp;on type constraints in function:<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""></span><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="color:rgb(187,44,162)" class="">public</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(187,44,162)" class="">extension</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(112,61,170)" class="">MutableCollection</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(187,44,162)" class="">where</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(187,44,162)" class="">Self</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> : RandomAccessCollection, Indices.Index == Index, Indices.SubSequence : RandomAccessCollection, Indices.SubSequence.Iterator.Element == Index {</span></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;min-height:13px" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(0, 132, 0);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures;" class="">/// Shuffle `self` in-place.</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">mutating</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(187,44,162)" class="">func</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> shuffle() {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">for</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> i </span><span style="color:rgb(187,44,162)" class="">in</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(187,44,162)" class="">self</span><span style="font-variant-ligatures: no-common-ligatures;" class="">.</span><span style="color:rgb(112,61,170)" class="">indices</span><span style="font-variant-ligatures: no-common-ligatures;" class="">.</span><span style="color:rgb(61,29,129)" class="">dropLast</span><span style="font-variant-ligatures: no-common-ligatures;" class="">() {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">let</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> j = </span><span style="color:rgb(187,44,162)" class="">self</span><span style="font-variant-ligatures: no-common-ligatures;" class="">.</span><span style="color:rgb(112,61,170)" class="">indices</span><span style="font-variant-ligatures: no-common-ligatures;" class="">.</span><span style="color:rgb(61,29,129)" class="">suffix</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(from: i).</span><span style="color:rgb(49,89,93)" class="">random</span><span style="font-variant-ligatures: no-common-ligatures;" class="">()!</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">if</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> i != j {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(61,29,129)" class="">swap</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(&amp;</span><span style="color:rgb(187,44,162)" class="">self</span><span style="font-variant-ligatures: no-common-ligatures;" class="">[i], &amp;</span><span style="color:rgb(187,44,162)" class="">self</span><span style="font-variant-ligatures: no-common-ligatures;" class="">[j])</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">}</span></div></div><div class=""><br class=""></div><div class="">Besides this, we also can write some odd definitions but allowed by swift compiler.</div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""></span><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="color:rgb(187,44,162)" class="">struct</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> MyArray : </span><span style="color:rgb(112,61,170)" class="">Collection</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;min-height:13px" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(112, 61, 170);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">typealias</span><span style="" class=""> Indices = </span><span style="font-variant-ligatures: no-common-ligatures;" class="">CountableRange</span><span style="" class="">&lt;</span><span style="font-variant-ligatures: no-common-ligatures;" class="">Int32</span><span style="" class="">&gt;</span></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;min-height:13px" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> base: [</span><span style="color:rgb(112,61,170)" class="">Int</span><span style="font-variant-ligatures: no-common-ligatures;" class="">]</span></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;min-height:13px" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> startIndex: </span><span style="color:rgb(112,61,170)" class="">Int</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">return</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(79,129,135)" class="">base</span><span style="font-variant-ligatures: no-common-ligatures;" class="">.</span><span style="color:rgb(112,61,170)" class="">startIndex</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> endIndex: </span><span style="color:rgb(112,61,170)" class="">Int</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">return</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(79,129,135)" class="">base</span><span style="font-variant-ligatures: no-common-ligatures;" class="">.</span><span style="color:rgb(112,61,170)" class="">endIndex</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""></span><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">func</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> index(after: </span><span style="color:rgb(112,61,170)" class="">Int</span><span style="font-variant-ligatures: no-common-ligatures;" class="">) -&gt; </span><span style="color:rgb(112,61,170)" class="">Int</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">return</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> after + </span><span style="color:rgb(39,42,216)" class="">1</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; }</span></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;min-height:13px" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(112, 61, 170);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">var</span><span style="" class=""> indices: </span><span style="font-variant-ligatures: no-common-ligatures;" class="">CountableRange</span><span style="" class="">&lt;</span><span style="font-variant-ligatures: no-common-ligatures;" class="">Int32</span><span style="" class="">&gt; {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">return</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(112,61,170)" class="">CountableRange</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(uncheckedBounds: (lower: </span><span style="color:rgb(112,61,170)" class="">Int32</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(</span><span style="color:rgb(79,129,135)" class="">startIndex</span><span style="font-variant-ligatures: no-common-ligatures;" class="">), upper: </span><span style="color:rgb(112,61,170)" class="">Int32</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(</span><span style="color:rgb(79,129,135)" class="">endIndex</span><span style="font-variant-ligatures: no-common-ligatures;" class="">)))</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; }</span></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;min-height:13px" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">subscript</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(position: </span><span style="color:rgb(112,61,170)" class="">Int</span><span style="font-variant-ligatures: no-common-ligatures;" class="">) -&gt; </span><span style="color:rgb(112,61,170)" class="">Int</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">get</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">return</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(79,129,135)" class="">base</span><span style="font-variant-ligatures: no-common-ligatures;" class="">[position]</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">set</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color:rgb(79,129,135)" class="">base</span><span style="font-variant-ligatures: no-common-ligatures;" class="">[position] = newValue</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><span style="font-family:arial,sans-serif;font-size:small" class="">as a reference:&nbsp;</span></span><span style="font-family:arial,sans-serif;font-size:small" class=""><a href="http://stackoverflow.com/questions/37581234/can-an-associated-type-be-restricted-by-protocol-conformance-and-a-where-clause" class="">http://stackoverflow.com/questions/37581234/can-an-associated-type-be-restricted-by-protocol-conformance-and-a-where-clause</a></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-family:arial,sans-serif;font-size:small" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-family:arial,sans-serif;font-size:small" class="">it's clearly that we need a syntax like this:</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""></span><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="color:rgb(187,44,162)" class="">public</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(187,44,162)" class="">protocol</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> Collection : </span><span style="color:rgb(112,61,170)" class="">Indexable</span><span style="font-variant-ligatures: no-common-ligatures;" class="">, </span><span style="color:rgb(112,61,170)" class="">Sequence</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;min-height:13px" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(0, 132, 0);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures;" class="">/// A sequence that represents a contiguous subrange of the collection's</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(0, 132, 0);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures;" class="">/// elements.</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(0,132,0)" class="">///</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(0, 132, 0);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures;" class="">/// This associated type appears as a requirement in the `Sequence`</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(0, 132, 0);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures;" class="">/// protocol, but it is restated here with stricter constraints. In a</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(0, 132, 0);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures;" class="">/// collection, the subsequence should also conform to `Collection`.</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">associatedtype</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> SubSequence : IndexableBase, Sequence </span><span style="color:rgb(187,44,162)" class="">where</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> SubSequence.Iterator.Element == Iterator.Element = Slice&lt;</span><span style="color:rgb(187,44,162)" class="">Self</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&gt;</span></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;min-height:13px" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(0, 132, 0);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures;" class="">/// A type that can represent the indices that are valid for subscripting the</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; color: rgb(0, 132, 0);" class=""><span style="" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures;" class="">/// collection, in ascending order.</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="color:rgb(187,44,162)" class="">associatedtype</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> Indices : IndexableBase, Sequence </span><span style="color:rgb(187,44,162)" class="">where</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> Indices.Iterator.Element == Index = DefaultIndices&lt;</span><span style="color:rgb(187,44,162)" class="">Self</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&gt;</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""></span><br class=""></div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo" class="">














</p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><span style="font-family:arial,sans-serif;font-size:small" class=""><br class=""></span></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><span style="font-family:arial,sans-serif;font-size:small" class="">This &nbsp;</span><span style="font-family:arial,sans-serif;font-size:small" class="">harmless and brings huge&nbsp;</span><span style="font-family:arial,sans-serif;font-size:small" class="">benefits to swift.</span><br class=""></span></div></div></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>