A demonstration of using the Reader monad (Kleisli) for dependency injection in a typical Scala Application.
The one-file version of the project can be seen here
Compare that with this which is the same program with constructor parameters as a DI mechanism.