«Fantastic Monads and where to find them»,Jakub Kozłowski

Although Scala’s standard library doesn’t provide a lot of abstractions for functional programming known from languages like Haskell, there are projects out there which aim to fill that gap — one of them is Cats, a library that provides typeclasses, instances and additional constructs to Free (pun intended) us from the burden of writing the same code over and over again.