<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 1, 2016, at 1:02 PM, Tony Parker &lt;<a href="mailto:anthony.parker@apple.com" class="">anthony.parker@apple.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: HelveticaNeue; font-size: 12px; font-style: normal; font-variant: 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; float: none; display: inline !important;" class="">Types like NSURL are intended to be the canonical URL for everyone to use,</span></div></blockquote></div><br class=""><div class=""><br class=""></div><div class="">I think the "canonical URL for everyone to use" <b class="">must</b> be a value type / struct. &nbsp;To me this seems axiomatic.</div><div class=""><br class=""></div><div class="">Meanwhile (NS)URL <b class="">cannot</b> be a value type because of the Darwin compatibility mandate, and to change from value-&gt;reference semantics would be "off the charts" breakage severity.</div><div class=""><br class=""></div><div class="">This is a requirements conflict. &nbsp;corelibs-foundation can either be Darwin-compatible <b class="">or</b> it can be canonical, but we cannot do both. &nbsp;Right now we have chosen Darwin-compatible, so we must let the canonical requirement go. &nbsp; Unprefixed "URL" should be reserved for the value type that can actually work as a canonical API.</div><div class=""><br class=""></div><div class="">It's not clear to me if Foundation will actually be in a position to provide that API (e.g. in Swift 4, etc.) or whether some third party will provide a "URL" framework that gains traction first. &nbsp;But in any case, we are not going to do it in the Swift 3 window, unless a lot of core scope decisions get re-decided.</div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>