# Introduction In this lab, we learn about the visibility of items in Rust modules, including the default private visibility, the use of the `pub` modifier to override visibility, and the different levels of visibility such as `pub(in path)`, `pub(self)`, `pub(super)`, and `pub(crate)`. We also explore nested modules and the restrictions on accessing private items within modules. > **Note:** If the lab does not specify a file name, you can use any file name you want. For example, you can use `main.rs`, compile and run it with `rustc main.rs && ./main`.
Click the virtual machine below to start practicing