First parameter in Swift
Why external name of the first parameter is omitted before Swift 3.0?
Here is the explanation: Understanding the strange grammar of parameters in Swift?
// will be declared as foo(_:b:c:) before Swift 3.0
func foo(a: T, b: U, c: V)
Why parameter naming rules is unified since Swift 3.0?
Here is the explanation: Establish consistent label behavior across all parameters including first labels
// will be declared as foo(a:b:c:) since Swift 3.0
func foo(a: T, b: U, c: V)