Some history: The specific-item import syntax was added by me very early in Swift’s development as a way to disambiguate when two modules provide the same name, giving priority to one over the other. The “kind” keyword that goes before the value is to distinguish from submodules, as allevato pointed out. Given the syntax, I kind of made it work as a way to say “only introduce this name into the top-level scope of this file”, but it still pulls in extensions (see [Pitch] Fixing member import visibility ), so it isn’t really a clean way to say “I’m just using this one thing”. It wasn’t ever rigorously designed, and I wish I had limited it to only working as disambiguation so we could have had a proper review and implementation effort later. Oh well.
Why does the kind matter, though? Mostly cause I had to put something there, and this seemed like a reasonable choice at the time. And so it does, in fact, filter down a choice between a top-level type and a top-level function with the same base name, and only import the one you said. But whether that’s actually a good way to express it…