<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Happy to see this proposal. Comments inline.<br></div><div><br>On Jan 18, 2016, at 7:21 PM, Howard Lovatt via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div>+1 from me. Minor changes I would suggest are:<div><br></div><div>&nbsp;1. All enums implicitly implement `CaseEnumerable`, so that you do not have to remember to add it.</div></div></blockquote><br>I think explicit is better, particularly since this could have resilience implications. Changing the order of cases (or properties) can break your API, which is not true for plain enums currently. Though this means extensions that add conformance could still be fragile. Another option would be to require all cases to explicitly be listed again, but with compiler support to make sure the list is complete. That may be too verbose though.&nbsp;<div><br><blockquote type="cite"><div><div>&nbsp;2. That `CaseEnumerable` has exploit static members `cases` and `caseFromName`. So that `CaseEnumerable` can be useful outside of `enum` constructs. In Java the equivalent of `caseFromName` has proved beneficial.&nbsp;</div></div></blockquote><br>`caseFromName` takes a String?<br><blockquote type="cite"><div><div>&nbsp;3. That `cases` is a `Set&lt;String&gt;`, i.e. a&nbsp;more specific collection.<br><br>On Monday, 18 January 2016, Jacob Bandes-Storch via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div dir="ltr"><div><span style="font-size:12.8px">Hi folks,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I've drafted a proposal to add a CaseEnumerable protocol, which will derive a static variable "cases" for enum types. Feedback is welcome, especially for refining the proposal before I submit a formal PR.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">The draft is here; full text below.&nbsp;<a href="https://github.com/jtbandes/swift-evolution/blob/977a9923fd551491623b6bfd398d5859488fe1ae/proposals/0000-derived-collection-of-enum-cases.md" target="_blank">https://github.com/jtbandes/swift-evolution/blob/977a9923fd551491623b6bfd398d5859488fe1ae/proposals/0000-derived-collection-of-enum-cases.md</a></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br clear="all"><div><div dir="ltr"><h1 style="font-size:2.25em;margin-right:0px;margin-bottom:16px;margin-left:0px;line-height:1.2;padding-bottom:0.3em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(238,238,238);color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';margin-top:0px!important">Derived Collection of Enum Cases</h1></div></div></div></div></div></div></div></div></blockquote></div></div></blockquote></div></body></html>