LOADING

Tagless Final for Humans

In this talk, I'll look at the different uses to which tagless final is put to, and see what we can learn about when it is useful and when it just gets in the way.

Noel Welsh
Principal at Inner Product
About This Talk

Tagless final can be either an amazing tool that allows for incredibly expressive code, or a colossal pain in the butt. So how do we make it more the former and less the latter? In this talk I'll describe when tagless final is appropriate, and Scala programming techniques that can make the notational overhead disappear.

Tagless Final is a common in the Scala world, but does it really justify the resulting code complexity? I've spent a decade writing a library using tagless final, so I can't claim I don't like the technique. At the same time I've worked on many codes bases where I felt it added a lot of complexity for little value.

In this talk I'll look at the different uses to which tagless final is put to, and see what we can learn about when it is useful and when it just gets in the way. Then, when we decide it is useful, I'll show how we can use subtyping, extension methods, and path-dependent types to allow the end user to write tagless final code that feels a natural as writing code without it, and won't have people shouting "What the F[_]?!"

more great talks

Might Be Interesting

Day 2
  —  
11:15 am
arrow pointing right icon

Automating template management process with Scala 3 and Iron

In this talk, I'd like to share how the Iron library and features from Scala 3 helped us build a solution which is safer, more robust, and easier to maintain.

Day 1
  —  
4:15 pm
arrow pointing right icon

Inlay Hints and the X-Ray mode

In this lightning talk, we will discuss 2 interesting IntelliJ IDEA features.

Day 2
  —  
10:10 am
arrow pointing right icon

Programming a Language

In this talk, I will show you how to create a programming language from scratch.

Day 1
  —  
3:40 pm
arrow pointing right icon

Retrying the retry design

In this talk, I will discuss why it's hard to use the power of RT to test side-effect-heavy apps.

Day 2
  —  
2:35 pm
arrow pointing right icon

Better Scala builds with the Mill build tool

This talk will introduce Mill: a newer build tool that does everything SBT does, but better. Faster, simpler, easier, Mill democratizes the build so you don't need to be a build tool expert to work on it.

Day 1
  —  
11:50 am
arrow pointing right icon

Yo Dawg, Heard You Want To FlatMap Your Direct-Style

During the talk, we’ll build a small effect system using solely Scala 3 context functions step-by-step.

See All Events
Join us!

We're looking for amazing speakers.
CFP is open till 10.01.2023

Fill in Call for Papers
location icon

Location

Centrum Konferencyjne POLIN, Poland
stay in touch icon

Follow Us

Contact Us