Say goodbye to implicits contextual abstractions in Scala 3
summary
Scala 3 removes the implicit keyword and replaces it with given/using for contextual values, extension methods for adding methods to closed types, and scala.Conversion for implicit conversions, while replacing implicitly with summon and adding import syntax like .given and given,*. Code examples show Future using an Executor via using/given, typeclass instances declared with given and summoned with summon, conversions via scala.Conversion, and clearer compiler errors; sample repos for Scala 2 and Scala 3 compile and demonstrate the improved, more explicit behavior.
AI-written summary · about
chapters (12)
- 0:00Introduction and overview
- 2:40Problems with Scala 2
- 6:40Introduction to Scala 3
- 8:40Providing context
- 11:14Extension methods
- 14:31Type classes
- 20:51Implicit conversions
- 23:28Implicit imports
- 25:32Unused names
- 27:58Compiler error improvements
- 29:40Migration strategy
- 30:53Conclusion and Q&A
related talks
29mSay goodbye to implicits - contextual abstractions in Scala 3
29mIMPLICITS IN SCALA 3
43mA Tour of Contextual Abstractions in Scala 3
52mWhat's coming in Scala 3
42mImplicits Revisited
30mLessons Learned from 15 Years of Scala in the Wild
01h 04mKeynote - What to Leave Implicit
46mImplicits Inspected and Explained
