The Death of Tagless Final by John A. De Goes
Final tagless. The topic strikes fear into the hearts of Scala developers everywhere—and not without reason. Final tagless allows developers to build composable Domain Specific Languages (DSLs) that model interaction with the outside world. Programs written using the final tagless style can be tested deterministically and reasoned about at compile-time. Yet the technique requires confusing, compiler-choking higher-kinded types, like `F[_]`, and pervasive, non-inferable context bounds like `F[_]: Concurrent: Console: Logging`. Many have looked at final tagless and wondered if all the layers of complexity and ceremony are really worth the benefits. In this presentation, John A. De Goes provides a gentle and accessible introduction to final tagless, explaining what it is and the problem it intends to solve. John shows that while final tagless is easier to use than free monads, the technique suffers from a litany of drawbacks that push developers away from functional programming in Scala. John then introduces a novel approach that shares some of the benefits of final tagless, but which is idiomatic Scala, easy to explain, doesn’t need any complex type machinery, provides flawless type inference, and works beautifully across Scala 2.x and Scala 3. Come join John for an evening of fun as you learn how to write functional code in Scala that's easy to test and easy to reason about—all without the complexity of free monads or final tagless.

The Rise Of Loom And The Evolution Of Reactive Programming

What Functional Programming Can Learn From Object-Oriented Programming by John De Goes

The Great Concurrency Smackdown: ZIO versus JDK by John A. De Goes

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

John De Goes - Euphoric Codecs & Dazzling Rainbows

John A. De Goes at #ScalaUA - Thinking Functionally

Why Effect is more important than ZIO by John A. De Goes (Effect Days 2024)

Concurrency is not Parallelism by Rob Pike

What Can Scala Learn from Rust? by John A. De Goes

Conan O’Brien Delivers the Commencement Address | Harvard Commencement 2026

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker

Knife Expert: Real Knife Defense Is TERRIFYING

19. Rob Pike - What We Got Right, What We Got Wrong | GopherConAU 2023

This Is Your App on Scala 3 by John A. De Goes

Tagless Final - Part 1 - What is Tagless Final?

John De Goes is Programming Without Type Classes

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

Scala: Beyond the basics with Christopher Batey

Tagless Final in Scala

