<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class=""><span style="font-family: Courier; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Agreed. Let me ask the question differently: what value does the<span class="Apple-converted-space"> </span></span><br style="font-family: Courier; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Courier; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">leading `.` provide to the user of the language?</span><br style="font-family: Courier; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote></div><div class=""><br class=""></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">I find the leading-dot syntax to be very useful;</span> it's a pretty clear shorthand that I'm not referencing something at global scope.</div><div class=""><br class=""></div><div class="">Here's a common example from our codebase:</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; line-height: normal; font-family: 'Input Mono';" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">completion(.</span><span style="font-variant-ligatures: no-common-ligatures; color: #31595d" class="">Failed</span><span style="font-variant-ligatures: no-common-ligatures" class="">(.</span><span style="font-variant-ligatures: no-common-ligatures; color: #31595d" class="">wrap</span><span style="font-variant-ligatures: no-common-ligatures" class="">(error)))</span></div></div><div style="margin: 0px; line-height: normal; font-family: 'Input Mono';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal; font-family: 'Input Mono';" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><div style="font-family: Courier;" class="">The completion function takes an enum value of type DataTransactionResult, of which .Failed is one case. The .Failed case takes an associated value of type DataTransactionError, which has a static function called wrap() that accepts an ErrorType and returns a DataTransactionError containing it.</div><div style="font-family: Courier;" class=""><br class=""></div><div style="font-family: Courier;" class="">Although .Failed is being used here in the common enum shorthand style, being able to very quickly determine that wrap() is not a global function is helpful. Without the leading dot, some context disappears:</div><div style="font-family: Courier;" class=""><br class=""></div><div style="font-family: Courier;" class=""><div class=""><div style="margin: 0px; line-height: normal; font-family: 'Input Mono';" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">completion(</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(49, 89, 93);" class="">Failed</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(49, 89, 93);" class="">wrap</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(error)))</span></div></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">Now, it's a lot harder to tell what I'm dealing with.</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><br class=""></span></div></div><div style="font-family: Courier;" class="">What is 'Failed'? Is it a class with an initializer that we're passing the result of wrap(error) to? Or is it an enum case with an associated type? Further, what's wrap()? A function in the global scope? Sure looks like it!</div><div style="font-family: Courier;" class=""><br class=""></div><div style="font-family: Courier;" class="">If we got rid of the shorthand altogether, we end up with something much more verbose:</div><div style="font-family: Courier;" class=""><br class=""></div><div style="font-family: Courier;" class=""><div class=""><div style="margin: 0px; line-height: normal; font-family: 'Input Mono';" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">completion(DataTransactionResult.</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(49, 89, 93);" class="">Failed</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(DataTransactionError.</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(49, 89, 93);" class="">wrap</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(error)))</span></div></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><br class=""></span></div><div class="">Yes, it's more explicit, but I would not necessarily argue that it's easier to read.</div><div class=""><br class=""></div></div></span></div></body></html>