In this article I present a simple relatively boilerplate-free approach to structuring Scala code using monadic abstractions. I use cats but it can be done using any other library, like Scalaz.
Presented approach is nothing new but just well-known patterns used in a cohesive way. In a sense it tries to compete . . .