Please log in to watch this conference skillscast.

In this talk, we'll discuss what free monads are, how they work, and how you can use them.

When writing programs, it often turns out to be useful to separate the description of what to do from a concrete implementation that actually performs the actions. You can do so by turning your descriptions into pure data. Then you can analyze them, transform them, and ultimately interpret them in any way you like.

If your descriptions are imperative in nature, it's natural to try to make them monadic. But the usual suspects such as Maybe, State, or IO aren't quite suitable here: they all add a concrete monadic effect, but we'd just like to obtain an abstract description of a sequential program, that we can later interpret in a concrete way. This is what "free" monads give you. In this talk, we'll discuss what free monads are, how they work, and how you can use them.

YOU MAY ALSO LIKE: