Visibility
- Module items are private by default (hides implementation details).
- Parent and sibling items are always visible.
- Use the keyword to make modules public.
Additionally, there are advanced specifiers to restrict the scope of public visibility.
- See the ).
- Less commonly, you can give visibility to a specific path.
- In any case, visibility must be granted to an ancestor module (and all of its descendants).