Tagless Final has been a hot topic the last couple of years. In many ways it is a great concept allowing us to radically separate problem description from implementation, while also having close to zero overhead in terms of performance and boilerplate. However, there are still some drawbacks that usually come up when discussing trade-offs with other solutions. This talk aims to mitigate these drawbacks and to give a sufficient introduction to some more advanced techniques dealing with tagless final. We will work out a way to make any tagless final program stack-safe, look at different ways to inspect and optimize tagless final programs and discover different libraries on the way.
Luka Jacobowitz is a functional programmer from Germany in love with finding great abstractions to engineering problems. He’s also a maintainer of several Typelevel projects, including Cats and OutWatch and seeks to make learning of pure functional programming as easy as possible.