<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><blockquote class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px;"><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;">As an aside: there seems to be increasingly comments about proposals that say:</div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><br></div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;"> 1. This was discussed at the evaluation stage and rejected. </div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;"> 2. This is how it is implemented in the patch.</div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><br></div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;">And other comments along those lines. Neither the pre-proposal discussions nor the proposed implementation are intended to limit the scope of the review. Therefore I don’t think people should raise this as reasons. You should remember that the process is deliberately staged this way and different people may well be commenting (in fact the process rather assumes that people in the formal review will be a wider set of people). </div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><br></div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;">Anyway gripe over. </div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><span style="background-color: rgba(255, 255, 255, 0);">Proposal link: <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md</a></span></div></blockquote><ul class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;"><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">What is your evaluation of</span><span style="background-color: rgba(255, 255, 255, 0);"> </span><a href="x-apple-data-detectors://7" dir="ltr" x-apple-data-detectors="true" x-apple-data-detectors-type="misc" x-apple-data-detectors-result="7" style="background-color: rgba(255, 255, 255, 0); -webkit-text-decoration-color: rgba(0, 0, 0, 0.258824);">the proposal</a><span style="background-color: rgba(255, 255, 255, 0);">?</span></p><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">+1/2</span></p><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">I only give this a half because whilst it is important I can see three issues:</span></p><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);"> 1. It doesn’t seem very Swift like to have a different rule, default non-exhaustive, for public as opposed to non-public. </span></p><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);"> 2. It doesn’t seem very Swift like to have the default the unsafe case. </span></p><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);"> 3. Other languages have better solutions - see below under other languages</span></p></li><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">Is the problem being addressed significant enough to warrant a change to Swift?</span></p><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">Yes, Swift ABI compatibility going forwards is important</span></p></li><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">Does this proposal fit well with the feel and direction of Swift?</span></p><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">No. As mentioned above different rules for public and a non-safe default don’t see that Swift like. </span></p></li><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</span></p><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">Both Java and Scala have a better solution. In these languages enums (Scala calls them case classes) can implement protocols and the user of an enum rarely writes a switch statement, instead they call protocol methods. Enums in these languages are a fixed set of derived classes; i.e. normal OO programming rather than functional programming, which works well in the case of wanting to expand later the number of enum cases. </span></p></li><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><p class="" style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><span style="background-color: rgba(255, 255, 255, 0);">How much effort did you put into your review? A glance, a quick reading, or an in-depth study?</span></p><div>Have followed the discussions. Used enums in Swift and other languages extensively. </div></li></ul><br><div id="AppleMailSignature">-- Howard.</div><div><br>On 19 Dec 2017, at 12:58 pm, Ted Kremenek <<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>> wrote:<br><br></div><blockquote type="cite"><div><p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">When replying, please try to keep <span>the proposal</span> link at the top of the message:</p><blockquote style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px; color: rgb(119, 119, 119); font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class=""><div style="-webkit-print-color-adjust: exact; margin: 0px;" class="">Proposal link: <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md</a><br style="-webkit-print-color-adjust: exact;" class="">...<br style="-webkit-print-color-adjust: exact;" class="">Reply text<br style="-webkit-print-color-adjust: exact;" class="">...<br style="-webkit-print-color-adjust: exact;" class="">Other replies</div></blockquote><h3 id="toc_0" style="-webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-size: 18px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">What goes into a review of a proposal?</h3><p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">The goal of the review process is to improve <span>the proposal</span> under review through constructive criticism and, eventually, determine the direction of Swift. </p><p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">When reviewing a proposal, here are some questions to consider:</p><ul style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class=""><li style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">What is your evaluation of <span>the proposal</span>?</p></li><li style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">Is the problem being addressed significant enough to warrant a change to Swift?</p></li><li style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">Does this proposal fit well with the feel and direction of Swift?</p></li><li style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</p></li><li style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">How much effort did you put into your review? A glance, a quick reading, or an in-depth study?</p></li></ul><p style="-webkit-print-color-adjust: exact; margin-top: 15px; margin-right: 0px; margin-left: 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255); margin-bottom: 0px !important;" class=""></p></div></blockquote></body></html>