<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=""><div><blockquote type="cite" class=""><div dir="ltr" class=""><div class="markdown-here-wrapper" style=""><p style="margin:1.2em 0px!important" class="">Consider the case where Erica has packages SwiftString, HTMLString, PGString, IBMString… These modules all have somewhat different dependencies — so you would not necessarily want to download and build all of them — but they do form a coherent whole under EricaString. Would this proposal allow for names like <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)" class="">EricaString.Swift</code>, <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)" class="">EricaString.HTML</code> and <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)" class="">EricaString.IBM</code></p></div></div></blockquote></div><div>In the current system a package can contain multiple modules. But a module cannot have submodules.</div><div><br class=""></div><div>So you can have EricaSwiftString and EricaHTMLString modules or you could have a module called Erica that contained classes or structs called SwiftString and HTMLString, and thus you would (well, *could*) refer to them as Erica.SwiftString and Erica.HTMLString.</div><div><br class=""></div><div>Your suggestion is perhaps similar to clang submodules (which Swift does not support afaik) coupled with a new capability in Package.swift to allow a user to declare that certain modules/submodules in certain packages should not be built.</div><div><br class=""></div><div>Both things could be done. Though I don’t think it should be put in this particular namespacing proposal.</div><br class=""></body></html>