<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="">We avoid forcing users to organize code in such an opinionated manner just to please the compiler. Perhaps some submodules deserve a separate file, but I think that choice should not be forced by the language. I don’t have data on the popularity, but I personally very much dislike the similar restriction Java places on public classes and files.<div class=""><br class=""></div><div class="">Given that we want Swift to be a fantastic scripting language, I feel we ought not place artificial restrictions on code organization. Many scripts are a single file (for convenience) but may still benefit from the organization modules offer.</div><div class=""><br class=""></div><div class="">Best,</div><div class="">Jaden Geller &nbsp;<br class=""><div class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 10:51 PM, Jonathan Hull &lt;<a href="mailto:jhull@gbis.com" class="">jhull@gbis.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Part of it. &nbsp;My concern is that the brackets will push everything in the file to the right.<div class=""><br class=""></div><div class="">My question is: What do we get in return for that? (as opposed to a system which acted on the whole file)</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Jon<br class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 10:45 PM, Jaden Geller &lt;<a href="mailto:jaden.geller@gmail.com" class="">jaden.geller@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Oh, you’re referring to the fact that a submodule under this proposal must be contained within braces? It would be purely additive to, in the future, annotate that the outer scope of a file is part of some given submodule.<div class=""><br class=""></div><div class="">Consider the following the following straw-man syntax that might be equivalent to `module Bar { func foo() { } }`:</div><div class="">```</div><div class="">module Bar follows // &lt;- at top of file, indicating rest of file is submodule</div><div class=""><br class=""></div><div class="">func foo() { }</div><div class="">```</div><div class=""><br class=""></div><div class="">Does this address your question?</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Jaden Geller</div><div class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 10:39 PM, Jonathan Hull &lt;<a href="mailto:jhull@gbis.com" class="">jhull@gbis.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 6:42 PM, Jaden Geller &lt;<a href="mailto:jaden.geller@gmail.com" class="">jaden.geller@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Jon,</div><div class=""><br class=""></div>I think we might have miscommunicated. It is intended that outermost module is implicit; no `module` declaration is required to wrap every file. We tried to show this in the first code snippet.<div class=""><br class=""></div><div class="">What do you mean “covering only part of a file”?<br class=""></div></div></div></blockquote><div class=""><br class=""></div><div class="">I am assuming that the ModuleName { … } &nbsp;only affects things within the brackets. &nbsp;Thus it is possible for only part of a file to be within a module. &nbsp;What are the benefits of allowing this, and are they worth the added complexity?</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Jon</div><div class=""><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class="">Cheers,</div><div class="">Jaden Geller<br class=""><div class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 6:36 PM, Jonathan Hull via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">What is the rational for having modules covering only part of a file? &nbsp;Wouldn’t it be less clutter to have an annotation which worked for the whole file. &nbsp;At the very least it would be nice to have an option to spell it in a way that applies to the whole file. &nbsp;Otherwise, everything will be indented another level.<div class=""><br class=""></div><div class="">I would honestly love to see something which just maps modules to folders/groups for simplicity sake.</div><div class=""><br class=""></div><div class="">I haven’t thought about it too much yet, so I could easily be missing something obvious...</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Jon</div></div></div></blockquote></div></div></div></div></div></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></div></div></div></body></html>