<div dir="ltr">I like the &quot;from&quot; keyword the best, but I&#39;ll take my own stab at a modification:<div><br></div><div>    import ModuleA</div><div>    import ModuleB</div><div><br></div><div>    &quot;hello world&quot;.(capitalized from ModuleA)()</div><div>    &quot;hello world&quot;.(capitalized from ModuleB)()</div><div>    &quot;hello world&quot;.(someProperty from ModuleA)</div><div>    &quot;hello world&quot;.(someProperty from ModuleB)<br></div><div><br></div><div>The &quot;from&quot; keyword makes it clearer than arbitrary punctuation what&#39;s going on, and extending the member reference syntax to support &quot;.(member from Module)&quot; seems clearer than putting the &quot;from Module&quot; after the actual call; we&#39;re saying &quot;look up the member named &#39;member&#39; on the receiver&#39;s type inside Module&quot;, as opposed to having it look like the &quot;from&quot; applies to the *expression*, which it doesn&#39;t.</div><div><br></div><div>Having the parens there is helpful in the property disambiguating case, where we would otherwise have this:</div><div><br></div><div><div>    &quot;hello world&quot;.someProperty from ModuleB.bar<br></div><div><br></div></div><div>Is that a property &quot;bar&quot; on the result of &quot;someProperty&quot; from ModuleB, or is that &quot;someProperty&quot; from submodule ModuleB.bar? This removes the ambiguity:</div><div><br></div><div>    &quot;hello world&quot;.(someProperty from ModuleB).bar<br><br class="inbox-inbox-Apple-interchange-newline"></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jun 7, 2016 at 7:27 AM LM via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
&gt;&gt; We already have the concept of prefixing a type name with a module to disambiguate when two modules have the same type. I wonder if we could do the same thing to disambiguate between conflicting extensions?<br>
&gt;&gt;<br>
&gt;&gt;    import ModuleA<br>
&gt;&gt;    import ModuleB<br>
&gt;&gt;<br>
&gt;&gt;    (&quot;hello world&quot; as ModuleA.String).capitalized()    // Swift.String, with only APIs known to ModuleA<br>
&gt;&gt;    (&quot;hello world&quot; as ModuleB.String).capitalized()    // Swift.String, with only APIs known to ModuleB<br>
&gt;&gt;    &quot;hello world&quot;.capitalized()                    // Still causes a compile-time error for ambiguity<br>
&gt;<br>
&gt; This only introduces a new kind of ambiguity since you can have both ModuleA and ModuleB declare something like<br>
&gt;<br>
&gt; class String {<br>
&gt;    /// ...<br>
&gt; }<br>
&gt;<br>
&gt; And now you have no idea if ModuleA.String refers to Swift.String extension in ModuleA or class String in ModuleA.<br>
&gt;<br>
<br>
Keep in mind that extensions are not types. (See prev response)<br>
<br>
&gt;<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Brent Royal-Gordon<br>
&gt;&gt; Architechies<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; swift-evolution mailing list<br>
&gt;&gt; <a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
&gt;&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; swift-evolution mailing list<br>
&gt; <a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>