I too have often come across this problem of wanting to limit visibility of a function to within a type, but have the function not be instance bound.
I think we should keep the static func
but extend symbol lookup rules to accept the “naked” function name when calling a static function from a non-static context.
If a static and non-static function share names, it should cause an ambiguity error, and the proposed fixit should be to prepend with either self.
or Self.