<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="">You do have empty angle brackets today, which indicate an inferred generic argument rather than a defaulted generic argument. See:<div class=""><br class=""></div><div class=""><div> 1> let a = 1</div><div>a: Int = 1<br class=""> 2> let b:Optional = a<br class="">b: Int? = 1<br class=""></div><div><br class=""></div><div>If Swift had defined Optional as Optional<Wrapped = Any>, statement 2 would be ambiguous.</div><div><br class=""></div><div>I have a hard time coming up with a realistic generic which can have every argument defaulted. If someone can’t give a real-world example, I would require empty angle brackets just to differentiate defaulted vs inferred arguments.</div><div><br class=""></div><div>-DW</div><div><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On Jan 23, 2017, at 12:25 PM, T.J. Usiyan via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I am against requiring empty angle brackets. I could live with it either way, but I think that one reason to provide default types is to hide the detail that there is a type parameter until such a time as it is needed. Empty angle brackets call attention to the feature in a manner that discards any possible gains on this front. Empty angle brackets would be confusing to explain to someone new to the language and–more importantly–shouldn't be necessary to explain in the "falling back to defaults" case.</div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Jan 23, 2017 at 1:41 PM, Trent Nadeau via swift-evolution <span dir="ltr" class=""><<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">The proposal looks good to me with one possible concern. I'm leaning toward types that use the defaults should still require the angle brackets, X<>. This makes it clear that you're using a generic type. That leads me to think that the examples Doug gave should be an error as the explicit types on the `let`s should either be omitted completely or fully specified (as X<>, X<Double>, X<Int>, etc.).</div><div class="gmail_extra"><br class=""></div></blockquote></div></div></div></blockquote></div><br class=""></div></div></body></html>