let x: (Int...) -> Int? = { (a: Int...) in return a.first } type(of: x) // <- ((Array<Int>) -> Optional<Int>).Type