<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hello Xiaodi,</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature"><blockquote type="cite"><span style="background-color: rgba(255, 255, 255, 0);">A general principle of Swift, recently strengthened by proposals such as&nbsp;<a href="https://github.com/xwu/swift-evolution/blob/harmonize-access-modifiers/proposals/0117-non-public-subclassable-by-default.md" style="text-decoration: none;">SE-0117</a>, has been that public API commitments should require explicit opt-in. Given the different behavior of classes and structs, the fact that extensions allow public methods to be declared without spelling out&nbsp;<code style="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;">public</code>&nbsp;at the declaration site has been called "confusing" or "odd."</span><br></blockquote><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">I think this is slightly misleading as that proposal dealt with classes being sealed by default outside of the current module while from your summary this would be also an explicit call for final by default which is not something the core team said explicitly or that the Swift community largely agrees with.</div><br>Sent from my iPhone</div><div><br>On 18 Jul 2016, at 08:50, Xiaodi Wu 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>A general principle of Swift, recently strengthened by proposals such as&nbsp;<a href="https://github.com/xwu/swift-evolution/blob/harmonize-access-modifiers/proposals/0117-non-public-subclassable-by-default.md" style="background-color:transparent;color:rgb(64,120,192);text-decoration:none">SE-0117</a>, has been that public API commitments should require explicit opt-in. Given the different behavior of classes and structs, the fact that extensions allow public methods to be declared without spelling out&nbsp;<code style="font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:14px;padding:0.2em 0px;margin:0px;background-color:rgba(0,0,0,0.0392157);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">public</code>&nbsp;at the declaration site has been called "confusing" or "odd."</div></blockquote></body></html>