Require parameter names when referencing to functions

It will be very annoying to write .init(_:) instead of .init. Could we require writing the full name if there is at least one named parameter, or when the parameters aren't known from context?
It would solve the problems with count and myArray.map(Int.init) being ambigous, while not not forcing you to write the full name in most cases.

func foo() -> Int { return 0 }
func foo(_ a: String) -> Int { return 0 }
func foo(namedParam: String) -> Int { return 0 }
func foo(_ a: String, b: String) -> Int { return 0 }

let a = foo // error: ambiguous, can be first or second
let b: () -> Int = foo // Good, clearly it's the first one
let c: (String) -> Int = foo // Good, there are two that match the signature, but only second has no named parameters
let d: (String) -> Int = foo(namedParam:) // we have to write full name if we want to use the third function
let e: (String, String) -> Int = foo(_:b:) // we have to write full name even if only some parameters are named
10 Likes