<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=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 21.01.2017 um 21:31 schrieb Dave Abrahams via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="auto" class=""><div class=""><div class=""><div class=""><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; 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 class=""><span class="">I'm struggling a little with the naming and syntax, but as a general approach, I think we want people to use something more like this:</span><br class=""><span class=""></span><br class=""><span class=""> if StringOptions(case: .insensitive, locale: .current).compare(foo < bar) { … }</span><br class=""></div></blockquote><div style="font-family: Helvetica; font-size: 12px; 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=""><br class=""></div><span style="font-family: Helvetica; font-size: 12px; 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="">Yeah, we can't do that without making </span></div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>let a = foo < bar</div><div class=""><br class=""></div><div class="">ambiguous</div><div class=""><br class=""></div></div></div></div></div></div></blockquote><br class=""></div><div>Hi,</div><div><br class=""></div><div>the most swifty way to write this I can imagine is something like:</div><div><br class=""></div><div><div> func <(_ a: Int, _ b: Int, case: Case = .insensitive, locale: Locale = .current)</div><div> </div><div> let a = foo < bar where <(case: .insensitive, locale: .current) </div><div class=""><br class=""></div><div class=""><div class="">In other words, function or operator calls can be splitted:</div></div><div class=""><br class=""></div></div><div class=""><div class=""> func foo(_ a: Int, _ b: Int, option: Option)</div><div class=""> </div><div class=""> let res = foo(10, 20) where foo(option: .fast)</div></div><div class=""><br class=""></div><div class="">And where it is unambiguous the second function or operator name can be omitted:</div><div class=""><br class=""></div><div class=""><div> let a = foo < bar where (case: .insensitive, locale: .current)</div></div><div><br class=""></div><div>...or shared:</div><div><br class=""></div><div class=""><div class=""><div> let a = foo1 < bar1 && foo2 < bar2 where (case: .insensitive, locale: .current)</div></div></div><div class=""><br class=""></div><div class="">— Bernd</div></body></html>