ZIO Part3: Modules

This part covers the ZIO module pattern. ZIO uses a module pattern that a layer depends on the layers imediately below it without knowing their interal implementations. A module consists a set of methods that addresses one oncern. ZIO uses modules to create different application layers depending on each other and allows flexible composition for testing and changing.