Tagless Final for Humans
summary
Claims that tagless final buys real extensibility but often burdens users, and demonstrates a Scala encoding that makes programs first-class values and hides high-kinded clutter. Uses Scala features subtyping, type members, path-dependent types and extension methods to build a UI DSL whose console interpreter runs (demo prints "Heck yes"), and shows same programs can target web or mobile interpreters. Concludes it’s worth in libraries and cross-platform UIs but usually overkill in application code.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 1:52Problems with tagless final
- 3:17Core concepts
- 7:29Making it approachable
- 10:18Five-step plan
- 16:43Benefits
- 18:08When to use it
- 19:56Library author best practices
- 20:38Q&A
related talks
35mBuilding a Tagless Final DSL for WebGL in Scala
33mExtensible Effects: A Leaner Cake for Purely Functional Code
33mAnalyzing Functional Programs
49mTen Cool Things You Can Do With Scala 3
29mWhy Scala 3 will be awesome
24mLet the Scala compiler work for you
44mFunctional Interpreters and You
30mLessons Learned from 15 Years of Scala in the Wild
