You will learn how to cut your applications into isolated pieces. The talk is based on a multiplayer, purely functional version of Prisoner’s Dillema.
Our programs consist of business logic, communication, persistence & logging. We want to keep them apart and reason about each of them separately. Enter free monad. I will show you an application which uses pure DSLs & side-effecting interpreters. Then I will introduce Freestyle library and compare the free monad style to free applicative and tagless final.