ITP2 - OOP Tutorials - Modules - Namespacing

We've already seen how modules can be used to mix-in common behavior
into classes. Now we'll see two more uses for modules.

The first use case we'll discuss is using modules for namespacing. In
this context, namespacing means organizing similar classes under a
module. In other words, we'll use modules to group related classes.
Therein lies the first advantage of using modules for namespacing. It
becomes easy for us to recognize related classes in our code. The second
advantage is it reduces the likelihood of our classes colliding with
other similarly named classes in our codebase.
ITP2 - OOP Tutorials - Modules - Module Methods

The second use case for modules we'll look at is using modules as a
container for methods, called module methods. This involves using
modules to house other methods. This is very useful for methods that
seem out of place within your code.