More consistent function types

(hoping to not get too off topic here)

Do you know why this is? It seems like it would be useful, for the same reason that sole parameters to a function can have a label -- it clarifies the value's role. Most of the time this isn't needed, but it would help a lot for @discardableResult functions, where the result's role needs some explanation. The call-site can even opt-in to the annotation (but let's ignore that asymmetry here).

(Also, it would benefit the Regex<T> strawman which uses tuple labels to communicate capture names, as named single-capture regexes otherwise couldn't use this technique)