the way Swift (and Objective-C before it) has parameter names as part of the method signature so you can overload based on names instead of just types is one of those things where now that I understand it I'm gonna miss it every time I use a language that doesn't have it. Task.sleep(for:) and Task.sleep(until:) are just so much nicer than Task.sleepFor() and Task.sleepUntil() would be. the fact that the name given at the call site can be different from the name assigned within the function is also extremely good