Presentation
The talk is about free monads and free applicatives. More concretely, I will present a DSL that uses a combination of both to create a DSL that has the full monadic power, but still allows the user to embed parts written using the free applicative interface. Those parts (free applicative) can then be analyzed and optimized during the program execution.
I plan to apply the idea to a case study thereby demonstrating how to combine free monads and free applicatives into a DSL which features some nice properties we can gain from embedding applicative parts, like static analyzability.
Markus works at codecentric AG in Germany as an IT Consultant and Lightbend (formerly Typesafe) Scala Trainer. Currently he is using Scala for his day-to-day work and he is also active (when he finds the time) in open-source, e.g. cats, scalaz and friends. He is a big fan of functional programming!