As an idea for (what I think is) better syntax:
cluster -> mod "small module" / the keyword Rust uses
clusterprivate -> internal
(the old) internal -> external
All old "large" modules contain a single implicit "small" module
This means changing the meaning of internal is not source breaking (I think)
New "large" modules can contain several "small" modules