
Upon further consideration and reading your response, I'm starting to think that the proposal to perform a mass renaming across stdlib might have been a bit too drastic, even if it was done over a longer period of time. Thanks for the detailed explanation of the costs, that significantly improved my understanding of the situation. My primary motivation was to provide more explicit declaration of public vs private, not only for the purpose of shifting the responsibility to the authors, but also to shift the liability of using private members to the user. From my perspective, if the communication is 100% clear that a particular function is not public, the developers are able to make changes to it more easily without being as concerned about the impact it will have on users. Nothing prevents the users from using it anyways, but if a change that occurs to a private function breaks their functionality, it's completely on them. With the current system, users can potentially make the argument that they weren't certain that it the function or module in question was private. Being concerned about breaking the functionality for users on non-public functions seems to entirely defeat the purpose of them. I also dislike the idea of adding the underscores or dealing with it on a case-by-case basis, due to the inconsistency it would provide across stdlib. In some cases the inconsistency might be necessary, but I'd rather avoid it if possible. Also, is the rule "unless explicitly documented public, all imports are private even if not prefixed with an underscore" officially stated anywhere, or is it mostly implied? Personally, I think that it should be explicitly stated in a public manner if it's the methodology being followed. A solid alternative proposal would also be Barry's public decorator proposal: https://public.readthedocs.io/en/latest/. I remember him saying that it was largely rejected by the community when it was proposed, but I'm not certain as to why. It would be far easier to implement something like this than it would be to rename all of the non-public functions.