> On Jun 9, 2017, at 1:17 PM, Gor Gyolchanyan via swift-evolution > <swift-evolution@swift.org> wrote: > > Yes, except why would you need to define `((A, B)) -> C`?, If you need to > pass a 2-element tuple into a function that takes two parameters - you can! > If you want to pass two values into a function that *looks* like it takes a > single 2-element tuple - you can! Seems to me that the difference between > `((A, B)) -> C` and `(A, B) -> C` is virtually non-existent. But keep in mind > that this only works for bare tuples (the ones that can't have labels). > Non-closure functions DO have labels, which is part of their signature, so > this is a different story.
Exactly. Been trying to communicate this for awhile. The types are almost always completely isomorphic and so the distinction barely exists. Function-only modifiers (like inout) make things slightly more complicated but I don’t think is an insurmountable problem. Really miss the expressiveness we lost :/ _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution