Free monads are good for you by David Laing
This talk will begin with a pragmatic introduction to free monads, covering how to create them, how to make use of them, and why they're useful.
The rest of the talk will cover how and why they work, along with some useful related ideas. This will be interspersed with shallow but energetic dives into the more theoretical parts of Haskell, to help build intuition for what is going on behind the scenes.
The theoretical sidebars aren't just to dazzle, delight and amaze - they will also help to show how a handful of theoretical concepts can be combined into something of incredible practical use.