type based visibility control is related but not completely the same mechanism as access control. Joe Groff explained this well here:
In my ideal world,
- fileprivate doesn’t exist and private means what fileprivate currently does
- we get submodules along with a modifier associated with them.
Classes in separate files that share internal details would share a submodule. It doesn’t completely solve the issue of “hiding it as completely as possible from myself as I can” but I prefer not introducing the axis of inheritance as a concern