Say goodbye to implicits - contextual abstractions in Scala 3
summary
Scala 3 removes the old implicit keyword and replaces it with focused constructs: the given/using pair for contextual values, extension methods for adding behavior to closed types, and Scala.Conversion objects for conversions; the helper summon replaces implicitly. The talk demonstrates seven concrete use cases (context values, type classes, conversions, imports, anonymous givens, ordering, compiler diagnostics), shows dot.given imports and better missing-parameter error messages, and confirms Scala 2 implicits interoperate during migration.
AI-written summary · about
chapters (13)
- 0:00Implicits struggle in Scala
- 1:27Implicits and Scala 2 problems
- 3:57Why Scala 3 redesigned implicits
- 6:02Context with given and using
- 8:54Extension methods
- 12:04Type classes with given
- 17:02Implicit conversions with Conversion
- 19:30Imports for givens
- 21:00Unused names and anonymous givens
- 22:48Better compiler errors
- 24:34Migrate implicits to given
- 26:24Benefits of contextual abstractions
- 27:31Q&A
related talks
36mSay goodbye to implicits contextual abstractions in Scala 3
29mIMPLICITS IN SCALA 3
43mA Tour of Contextual Abstractions in Scala 3
42mImplicits Revisited
01h 04mKeynote - What to Leave Implicit
46mImplicits Inspected and Explained
30mLessons Learned from 15 Years of Scala in the Wild
48mKeynote: Some Mistakes We Made When Designing Implicits
