Dfrlhrhw4rkmbo5swpfw
SkillsCast

Free Monad or Tagless Final? How Not to Commit to a Monad Too Early

14th December 2017 in London at Business Design Centre

There are 53 other SkillsCasts available from Scala eXchange 2017

Please log in to watch this conference skillscast.

672521226 640

Functional programming is on the rise; monads are everywhere. But how to choose the right wrapper for the values which we manipulate (i.e. monad)? Quite often, the answer is far from obvious, and it’s useful to delay the decision as much as possible. Furthermore, picking a particular monad too early might only obscure important business logic details.

There are (at least) two ways to solve the problem, which are quite popular: free monads and the tagless final encoding. Both are equivalent in expressive power, but are radically different when it comes to code.

In this live-coding talk, you will learn how to transform a simple application which relies on Futures into more generic forms, using either the free monad or tagless final. You will discover how these two representations compare in terms of boilerplate, readability, composability and stack-safety. You will also explore which approach might be a better fit for selected use-ca

YOU MAY ALSO LIKE:

Thanks to our sponsors

Free Monad or Tagless Final? How Not to Commit to a Monad Too Early

Adam Warski

Adam is one of the co-founders of SoftwareMill, a company specialising in delivering customised software solutions. He codes mostly on the back-end using Scala and other interesting technologies. Adam created a couple of open-source projects, such as sttp, MacWire, Hibernate Envers and ElasticMQ. He has been a speaker at major conferences, such as Devoxx, JavaOne, LambdaConf and ScalaDays.

SkillsCast

Please log in to watch this conference skillscast.

672521226 640

Functional programming is on the rise; monads are everywhere. But how to choose the right wrapper for the values which we manipulate (i.e. monad)? Quite often, the answer is far from obvious, and it’s useful to delay the decision as much as possible. Furthermore, picking a particular monad too early might only obscure important business logic details.

There are (at least) two ways to solve the problem, which are quite popular: free monads and the tagless final encoding. Both are equivalent in expressive power, but are radically different when it comes to code.

In this live-coding talk, you will learn how to transform a simple application which relies on Futures into more generic forms, using either the free monad or tagless final. You will discover how these two representations compare in terms of boilerplate, readability, composability and stack-safety. You will also explore which approach might be a better fit for selected use-ca

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speaker

Free Monad or Tagless Final? How Not to Commit to a Monad Too Early

Adam Warski

Adam is one of the co-founders of SoftwareMill, a company specialising in delivering customised software solutions. He codes mostly on the back-end using Scala and other interesting technologies. Adam created a couple of open-source projects, such as sttp, MacWire, Hibernate Envers and ElasticMQ. He has been a speaker at major conferences, such as Devoxx, JavaOne, LambdaConf and ScalaDays.

Photos