I feel like increasing visibility of a function/type should require more verbosity. I don't know of any PL that follows this design principle for >2 levels though. Ordered by verbosity: public, private, protected , pub, pub(crate) Has any PL solved this?