I agree with everything you wrote here. And it is for that reason that I would expect that any future proposal for submodules should be judged in no small part on its _not_ changing circumstances surrounding access modifiers, such that no further proposals to revisit this topic will come up. It&#39;s one thing to have one-off discussions to back out a change that in hindsight seems unwise; it&#39;s quite another to have the community return to the same topic over and over like this. No more. Let&#39;s do this never again.<br><div class="gmail_quote"><div dir="ltr">On Fri, Mar 24, 2017 at 00:04 Drew Crawford &lt;<a href="mailto:drew@sealedabstract.com">drew@sealedabstract.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="gmail_msg"><div id="m_-5031883522807820606bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="gmail_msg"><div class="gmail_msg"><blockquote type="cite" class="m_-5031883522807820606clean_bq gmail_msg" style="font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px" class="gmail_msg">Or, since many designs for submodules are possible... </span><span style="font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px" class="gmail_msg">confident that there will be a good design for submodules</span></blockquote></div><p class="gmail_msg">We lack any real information on what Swift designs are possible.  We can look to other languages for inspiration but they cannot be transplanted wholesale into Swift from a technical, practical, or cultural perspective.  Rust isn&#39;t Swift.</p></div></div><div style="word-wrap:break-word" class="gmail_msg"><div id="m_-5031883522807820606bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="gmail_msg"><div class="gmail_msg"><blockquote type="cite" class="m_-5031883522807820606clean_bq gmail_msg" style="font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px" class="gmail_msg">Given, as some have said above, many different submodule designs are possible whatever the number of access levels, I would expect that we would not revisit this topic again for the foreseeable future, whatever the decision is.</span></blockquote></div></div></div><div style="word-wrap:break-word" class="gmail_msg"><div id="m_-5031883522807820606bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="gmail_msg"><p class="gmail_msg">I think it would be appropriate to revisit this if we have new information.  You have previously argued that there is substantial new information which you present as a rationale to revisit it now.  I don&#39;t accept the premise, but I do accept the argument: if the circumstances change it&#39;s appropriate to take another look.</p><div class="gmail_msg"><br class="m_-5031883522807820606Apple-interchange-newline gmail_msg"></div></div></div><div style="word-wrap:break-word" class="gmail_msg"><div id="m_-5031883522807820606bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="gmail_msg">On March 23, 2017 at 11:12:32 PM, Xiaodi Wu via swift-evolution (<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>) wrote:</div> <blockquote type="cite" class="m_-5031883522807820606clean_bq gmail_msg"><span class="gmail_msg"><div class="gmail_msg"><span style="color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);display:inline!important;float:none" class="gmail_msg">Or, since many designs for submodules are possible, we can proceed to make the best decision *now* with respect to access levels, confident that there will be a good design for submodules whether or not there exist both scoped and file-based private access. That is to say, any future submodule proposal would be judged on how well it accommodates desired use cases if one type of private is removed, and any future design for submodules would be judged on how well it fits with the current set of access levels without duplicating functionality with a different syntax if both types of private are retained.</span><br style="color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="gmail_msg"><br style="color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="gmail_msg"><span style="color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);display:inline!important;float:none" class="gmail_msg">One very important thing about the evolution process (IMO) is that decisions made aren&#39;t revisited without compelling changes in circumstances. It is highly unusual that fileprivate vs. private is now going through this process for a _third_ time. I submit that it is untenable that every version of Swift should consider a change to the access modifiers. Given, as some have said above, many different submodule designs are possible whatever the number of access levels, I would expect that we would not revisit this topic again for the foreseeable future, whatever the decision is. That is, the question being asked here is, is it better for Swift to have both fileprivate and private for all time, or one file-scoped private for all time?</span></div></span></blockquote></div></blockquote></div>