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:
Monads for free!
Andres Löh is a long-time functional programming enthusiast. He has started using Haskell in 1997 while being an undergraduate studying mathematics. He obtained his PhD on datatype-generic programming using Haskell from Utrecht University in 2004. Since then, he has continued to use Haskell in research and practice, including teaching various courses both to students and participants from industry. His main interests, next to datatype-generic programming, are embedded domain-specific languages, unleashing the full power of Haskell's type system, parallelism and applying functional languages to real-life problems. Since 2010, Andres is an independent Haskell consultant and partner at Well-Typed LLP.