<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=""><div class="">This would be very handy! It’s one of those rare scenarios where I think “I can’t believe Swift makes me type all this out, there must be an easier way”.</div><div class=""><br class=""></div><div class="">I think explicitly conformance to Equatable and Hashable would be preferable. This means if one of the members is not Equable/Hashable, the user knows by getting an error of ‘Does not conform to Equatable, must implement func ==’ at the type level rather than scratching their head when instances are not automatically Equatable. It also means code is only generated when it is needed.</div><div class=""><br class=""></div><div class="">There’s a small typo (before [sic] below):</div><br class=""><div><blockquote type="cite" class=""><div class="">On 26 May 2016, at 4:28 AM, Tony Allevato via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="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'; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;" class="">As with raw-value enums today, should the derived conformance be completely explicit [sic], or should users have to explicitly list conformance with</span><span class="inbox-inbox-Apple-converted-space" style="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'; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"> </span><code style="color: rgb(51, 51, 51); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; font-family: consolas, 'liberation mono', menlo, courier, monospace; font-size: 13.6px; padding: 0.2em 0px; margin: 0px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgba(0, 0, 0, 0.0392157);" class="">Equatable</code><span class="inbox-inbox-Apple-converted-space" style="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'; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"> </span><span style="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'; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;" class="">and</span><span class="inbox-inbox-Apple-converted-space" style="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'; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"> </span><code style="color: rgb(51, 51, 51); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; font-family: consolas, 'liberation mono', menlo, courier, monospace; font-size: 13.6px; padding: 0.2em 0px; margin: 0px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgba(0, 0, 0, 0.0392157);" class="">Hashable</code><span class="inbox-inbox-Apple-converted-space" style="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'; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"> </span><span style="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'; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;" class="">in order for the compiler to generate the derived implementation?</span></div></blockquote></div><br class=""></body></html>