This document introduces monad transformers and illustrates their usage in Scala. It defines the Reader and IO monads and shows how they can be composed using the ReaderT transformer. This allows defining computations that both read configuration values and perform side effects. The document recommends using type classes like MonadReader and MonadBase to define computations over monad stacks in a parametrically polymorphic way. It provides examples of defining and running such computations over a ReaderT[IO, ?] stack.