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?