This month saw Scala developer, Jaakko Pallari, talk about how Free monads are a general way of deriving monads for functor data types.

Besides reducing the boilerplate for creating new monads, they allow customising how the monads are interpreted.

Jakko demonstrated what free monads can be used for in practice, as well as how the free monad itself is structured.

The code examples in Haskell can be applied to other functional programming languages as well.