<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"><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=""><br class=""></div><div class="">On May 2, 2016, at 13:10, John McCall <<a href="mailto:rjmccall@apple.com" class="">rjmccall@apple.com</a>> wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div class=""><blockquote type="cite" class=""><div class="">On May 2, 2016, at 6:55 AM, David Sweeris via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I was just thinking that:<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(187, 44, 162);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">protocol</span><span style="" class=""> Foo : </span><span style="font-variant-ligatures: no-common-ligatures" class="">reference</span><span style="" class=""> {}</span></div></div></blockquote><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;" class="">might be more to the point than:</span></div></span></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><div style="color: rgb(187, 44, 162); margin: 0px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">protocol</span><span style="" class=""> Foo : </span><span style="font-variant-ligatures: no-common-ligatures" class="">class</span><span style="" class=""> {}</span></div></span></div></blockquote><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><div style="" class=""><br class=""></div><div style="" class="">I know that it’s currently a moot point because classes are the only* reference-semantics type of type in Swift, but it’s conceivable that there might some day be others.</div></span></div></div></div></blockquote><div class=""><br class=""></div>Functions/closures have reference semantics, but they can't conform to protocols. Anyway, that's not the important question; the important question is why we would add a new kind of first-class reference type to the language — that can implement class protocols, no less — instead of, at most, calling it a new kind of class.<br class=""></div></blockquote><br class=""><div class="">Dunno, I wasn’t thinking about anything in particular... If there's one thing I've learned on this mailing list, it's that the state of the art WRT to programming languages has changed a <i class="">lot</i> since I was in school, and, at least to me, it seems like the pace at which it’s changing is increasing as well. This was just an off-the-cuff idea for making the language as future-proof as possible. I don’t have an concrete examples, other than maybe “mixins”. I don’t know anything about them, other than their name seems misspelled to me. Would they even be a separate type of type, or would they get glued onto structs, enums, and classes?</div><div class=""><br class=""></div><div class="">Anyway, I just wanted to raise the issue before Swift 3 comes out, since with v3 we're aiming for source-compatibility going forward.</div><div class=""><br class=""></div><div class="">- Dave Sweeris (who is apparently trying to get the day’s quota for whacky ideas out of the way early :-) )</div></body></html>