<html><head><meta http-equiv="Content-Type" content="text/html charset=gb2312"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Sorry about my typo:<div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code'; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""></span><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div class="" style="word-wrap: break-word;"><div class="" style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';"><span class="" style="font-variant-ligatures: no-common-ligatures;"><div class="" style="margin: 0px; line-height: normal; color: rgb(52, 149, 175);"><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">public</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">struct</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> Album</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> {</span></div> <span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">public</span> <span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">let</span> <wbr class="">sectionedMediaItemInfos: [<span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(52, 149, 175);">Sectioned</span><<span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(52, 149, 175);">MediaItemInfo</span>>]?}<div class=""><br class=""></div><div class=""><div class="" style="margin: 0px; line-height: normal;"><br class=""></div></div><div class=""><span class="" style="font-variant-ligatures: no-common-ligatures;"><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">public</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">struct</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> Sectioned<Item> : </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(52, 149, 175);">SectionProtocol</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> {</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">public</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">let</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> title: </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(52, 149, 175);">String</span><span class="" style="font-variant-ligatures: no-common-ligatures;">?</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">public</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">let</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> items: [</span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(52, 149, 175);">Item</span><span class="" style="font-variant-ligatures: no-common-ligatures;">]</span></div><div class="" style="margin: 0px; line-height: normal; min-height: 13px;"><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><br class="m_715390691247048198webkit-block-placeholder"></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">public</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">init</span><span class="" style="font-variant-ligatures: no-common-ligatures;">(</span><span class="" style="font-variant-ligatures: no-common-ligatures;">) {</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(52, 149, 175);">items</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> = </span><span class="" style="font-variant-ligatures: no-common-ligatures;">[]</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(52, 149, 175);">title</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> = nil</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-variant-ligatures: no-common-ligatures;"> }</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-variant-ligatures: no-common-ligatures;">}</span></div></span></div></span></div></div></blockquote></div></div></div></div></div></div><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">public</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">extension</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #3495af" class="">Array</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">where</span><span style="font-variant-ligatures: no-common-ligatures" class=""> Element == Sectioned {</span></div><p style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code'; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> itemsCount: </span><span style="font-variant-ligatures: no-common-ligatures; color: #3495af" 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: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">return</span><span style="font-variant-ligatures: no-common-ligatures" class=""> reduce(0) { (result, section) </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">in</span><span style="font-variant-ligatures: no-common-ligatures" class=""> result + section.items.count }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> }</span></div><p style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code'; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> items: [</span><span style="font-variant-ligatures: no-common-ligatures; color: #3495af" class="">Element</span><span style="font-variant-ligatures: no-common-ligatures" class="">.</span><span style="font-variant-ligatures: no-common-ligatures; color: #3495af" class="">Item</span><span style="font-variant-ligatures: no-common-ligatures" class="">] {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">return</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">self</span><span style="font-variant-ligatures: no-common-ligatures" class="">.flatMap { $0.items }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" 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: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">Allow extension Array with strict its Element with a struct type (may be generic) is highly wanted feature.</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div><blockquote type="cite" class=""><div class="">在 2017年2月20日,上午7:28,曹剑楠 <<a href="mailto:frogcjn@163.com" class="">frogcjn@163.com</a>> 写道:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=gb2312" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">OK, my fault. That solved the problem.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div class="" style="word-wrap: break-word;"><div class="" style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';"><span class="" style="font-variant-ligatures: no-common-ligatures;"><div class="" style="margin: 0px; line-height: normal; color: rgb(52, 149, 175);"><span class="" style="font-variant-ligatures: no-common-ligatures; color: rgb(4, 51, 255);">var</span><span class="" style="font-variant-ligatures: no-common-ligatures;"> items: [</span><span class="" style="font-variant-ligatures: no-common-ligatures;">Element</span><span class="" style="font-variant-ligatures: no-common-ligatures;">.</span><span class="" style="font-variant-ligatures: no-common-ligatures;">SectionItemTy<wbr class="">pe</span><span class="" style="font-variant-ligatures: no-common-ligatures;">]</span></div></span></div></div></blockquote></div></div></div></blockquote><div class=""><br class=""></div>I should use this.<br class=""><br class=""></div><div class="">How about to allow using generic type Section directly instead of declare a protocol</div><div class=""><br class=""></div><div class="">```Swift</div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">public</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">extension</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #3495af" class="">Array</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">where</span><span style="font-variant-ligatures: no-common-ligatures" class=""> Element == Section {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code'; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><br class="webkit-block-placeholder"></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> itemsCount: </span><span style="font-variant-ligatures: no-common-ligatures; color: #3495af" 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: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">return</span><span style="font-variant-ligatures: no-common-ligatures" class=""> reduce(0) { (result, section) </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">in</span><span style="font-variant-ligatures: no-common-ligatures" class=""> result + section.items.count }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code'; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><br class="webkit-block-placeholder"></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code'; color: rgb(52, 149, 175);" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> items: [</span><span style="font-variant-ligatures: no-common-ligatures" class="">Element</span><span style="font-variant-ligatures: no-common-ligatures;" class="">.</span><span style="font-variant-ligatures: no-common-ligatures" class="">SectionItemType</span><span style="font-variant-ligatures: no-common-ligatures;" class="">] {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">return</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #0433ff" class="">self</span><span style="font-variant-ligatures: no-common-ligatures" class="">.flatMap { $0.items }</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> }</span></div></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code';" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">```</span></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">在 2017年2月20日,上午7:14,Xiaodi Wu <<a href="mailto:xiaodi.wu@gmail.com" class="">xiaodi.wu@gmail.com</a>> 写道:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote">On Sun, Feb 19, 2017 at 5:04 PM, 曹剑楠 via swift-evolution <span dir="ltr" class=""><<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>></span> wrote:<br class=""><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=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">Hi All,</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">I’m coding for section like data structure. </div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">For example:</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">I have an Album struct, which has many MediaItems.</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">It has a sectioned property called "sectionedMediaItemInfos", which is an array of sections.</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><div class=""><span style="font-variant-ligatures:no-common-ligatures" class="">Each section represents for a disc, and </span>has an "items" array contains all MedaItems in that disc.</div><div class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div><div class="">The define code is like:</div><div class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```Swift</span></div></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><div style="margin:0px;line-height:normal;color:rgb(52,149,175)" class=""><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">public</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">struct</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> Album</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">let</span><span style="font-variant-ligatures:no-common-ligatures" class=""> sectionedMediaItemInfos: [</span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">Sectioned</span><span style="font-variant-ligatures:no-common-ligatures" class=""><</span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">MediaItemInfo</span><span style="font-variant-ligatures:no-common-ligatures" class="">>]?</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div><div class=""><br class=""></div><div class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">struct</span><span style="font-variant-ligatures:no-common-ligatures" class=""> Sectioned<Item> : </span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">SectionProtocol</span><span style="font-variant-ligatures:no-common-ligatures" class=""> {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">let</span><span style="font-variant-ligatures:no-common-ligatures" class=""> title: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">String</span><span style="font-variant-ligatures:no-common-ligatures" class="">?</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">let</span><span style="font-variant-ligatures:no-common-ligatures" class=""> items: [</span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">Item</span><span style="font-variant-ligatures:no-common-ligatures" class="">]</span></div><div style="margin: 0px; line-height: normal; min-height: 13px;" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><br class="m_715390691247048198webkit-block-placeholder"></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">init</span><span style="font-variant-ligatures:no-common-ligatures" class="">(</span><span style="font-variant-ligatures:no-common-ligatures" class="">) {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">items</span><span style="font-variant-ligatures:no-common-ligatures" class=""> = </span><span style="font-variant-ligatures:no-common-ligatures" class="">[]</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">title</span><span style="font-variant-ligatures:no-common-ligatures" class=""> = nil</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> }</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div></span></div></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">protocol</span><span style="font-variant-ligatures:no-common-ligatures" class=""> SectionProtocol {</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">associatedtype</span><span style="font-variant-ligatures:no-common-ligatures" class=""> SectionItemType</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">var</span><span style="font-variant-ligatures:no-common-ligatures" class=""> items: [SectionItemType] { </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" 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:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" 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:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">Now I want to define some extra properties for sections array</span>, like</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">"sectionMediaItemInfos"."<wbr class="">itemsCount" that count all items in each sections.</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">So I can write that extension:</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code';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:'Fira Code';min-height:13px" class="">```Swift</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">extension</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">Array</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">where</span><span style="font-variant-ligatures:no-common-ligatures" class=""> Element : SectionProtocol {</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Fira Code'; min-height: 13px;" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><br class="m_715390691247048198webkit-block-placeholder"></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">var</span><span style="font-variant-ligatures:no-common-ligatures" class=""> itemsCount: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" 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:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">return</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">reduce</span><span style="font-variant-ligatures:no-common-ligatures" class="">(0) { (result, section) </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> result + section.</span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">items</span><span style="font-variant-ligatures:no-common-ligatures" class="">.</span><span style="font-variant-ligatures:no-common-ligatures;color:#3495af" class="">count</span><span style="font-variant-ligatures:no-common-ligatures" class=""> }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" 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:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" 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:'Fira Code'" class="">So I can get my itemsCount with code like:</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">```Swift</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">album.sectionedMediaItemInfos.<wbr class="">itemsCount</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">```</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">That looks good.</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">Then I want to define code to return all items in this sectioned property.</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" 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:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```Swift</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">extension</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">Array</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">where</span> <wbr class="">Element : SectionProtocol {</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><div style="margin:0px;line-height:normal;color:rgb(52,149,175)" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> items: [</span><span style="font-variant-ligatures:no-common-ligatures" class="">SectionProtocol</span><span style="font-variant-ligatures: no-common-ligatures;" class="">.</span><span style="font-variant-ligatures:no-common-ligatures" class="">SectionItemTy<wbr class="">pe</span><span style="font-variant-ligatures: no-common-ligatures;" class="">] {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">return</span><span style="font-variant-ligatures:no-common-ligatures" class=""> .flatMap { $0.items }</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> }</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```</span></div></span></div></div></blockquote><div class=""> </div><div class="">Sorry, I'm reading this quickly, but I'm confused as to why you're not writing `var items: [Element.SectionItemType]`. That seems to be what you want, no? `SectionProtocol.SectionItemType` has no constraints and, even if the grammar allowed you to write it, would have to be equivalent to `Any`.</div><div class=""><br class=""></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=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""></span></div><div style="margin:0px;line-height:normal" class="">This doesn’t work. It reported as "Cannot use associated type 'SectionItemType' outside of its protocol"</div></span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" 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:'Fira Code'" class="">The only way to achieve my goals is to untyped the extended "items" property:</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```Swift</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">extension</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">Array</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">where</span> <wbr class="">Element : SectionProtocol {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><div style="margin:0px;line-height:normal;color:rgb(52,149,175)" class=""><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">var</span><span style="font-variant-ligatures:no-common-ligatures" class=""> items: [</span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">Any</span><span style="font-variant-ligatures:no-common-ligatures" class="">] {</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">return</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:#0433ff" class="">self</span><span style="font-variant-ligatures:no-common-ligatures" class="">.flatMap { $0.items }</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> }</span></div></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```</span></div></span></div></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class="">Which is not perfect for this case.</div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" 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:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">So in this special case, I think allow use associated type outside of its protocol is necessary.</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" 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:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">And we may allow define protocol with generic type. That would be more convenient.</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" 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:'Fira Code'" class=""><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```Swift</span></div><div style="margin:0px;line-height:normal" class=""><div style="margin:0px;line-height:normal;color:rgb(52,149,175)" class=""><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">struct</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> Album</span><span style="font-variant-ligatures: no-common-ligatures;" class=""> {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">let</span><span style="font-variant-ligatures:no-common-ligatures" class=""> <wbr class="">sectionedMediaItemInfos: [</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">Sectioned</span><span style="font-variant-ligatures:no-common-ligatures" class=""><</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">MediaItemInfo</span><span style="font-variant-ligatures:no-common-ligatures" class="">>]?</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div><div class=""><br class=""></div><div class=""><div style="margin:0px;line-height:normal" class=""><br class=""></div></div><div class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">struct</span><span style="font-variant-ligatures:no-common-ligatures" class=""> Sectioned<Item> : </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">SectionProtocol</span><span style="font-variant-ligatures:no-common-ligatures" class=""> {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">let</span><span style="font-variant-ligatures:no-common-ligatures" class=""> title: </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">String</span><span style="font-variant-ligatures:no-common-ligatures" class="">?</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">let</span><span style="font-variant-ligatures:no-common-ligatures" class=""> items: [</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">Item</span><span style="font-variant-ligatures:no-common-ligatures" class="">]</span></div><div style="margin:0px;line-height:normal;min-height:13px" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><br class="m_715390691247048198webkit-block-placeholder"></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">init</span><span style="font-variant-ligatures:no-common-ligatures" class="">(</span><span style="font-variant-ligatures:no-common-ligatures" class="">) {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">items</span><span style="font-variant-ligatures:no-common-ligatures" class=""> = </span><span style="font-variant-ligatures:no-common-ligatures" class="">[]</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">title</span><span style="font-variant-ligatures:no-common-ligatures" class=""> = nil</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> }</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div></span></div></div><div style="margin:0px;line-height:normal" class=""><br class=""></div><div style="margin:0px;line-height:normal" class=""><div class=""><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">protocol</span><span style="font-variant-ligatures:no-common-ligatures" class=""> <wbr class="">SectionProtocol<<wbr class="">SectionItemType> {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">var</span><span style="font-variant-ligatures:no-common-ligatures" class=""> items: [SectionItemType] { </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">get</span><span style="font-variant-ligatures:no-common-ligatures" class=""> }</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div></div><div class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div></div><div style="margin:0px;line-height:normal" class=""><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">public</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">extension</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(52,149,175)" class="">Array</span> <span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">where</span> <wbr class="">Element : SectionProtocol {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><div style="margin:0px;line-height:normal" class=""><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span><span style="color:rgb(4,51,255);font-variant-ligatures:no-common-ligatures" class="">var</span><span style="font-variant-ligatures:no-common-ligatures" class=""> items: [<font color="#0433ff" class="">Element.</font></span>SectionItemType] {</div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">return</span><span style="font-variant-ligatures:no-common-ligatures" class=""> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(4,51,255)" class="">self</span><span style="font-variant-ligatures:no-common-ligatures" class="">.flatMap { $0.items }</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""> }</span></div></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">}</span></div></span></div></div><div style="margin:0px;line-height:normal" class=""><br class=""></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">```</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">Thank all!</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">Jiannan</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div><div style="margin:0px;line-height:normal" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div></span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:'Fira Code'" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div></div><br class="">______________________________<wbr 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" rel="noreferrer" target="_blank" class="">https://lists.swift.org/<wbr class="">mailman/listinfo/swift-<wbr class="">evolution</a><br class="">
<br class=""></blockquote></div><br class=""></div></div>
</div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></body></html>