Keynote: Some Mistakes We Made When Designing Implicits
summary
Traces how Scala's implicits grew from conversions to parameters, lists concrete usability failures (name-based resolution causes shadowing and forced odd identifiers, nesting-insensitive lookup creates local ambiguities, conversions and type-class instances look identical, implicit arguments leak into function application, wildcard imports enable global surprises) and presents Scala 3 remedies: names matter becomes optional through anonymous delegates, extension methods plus given parameters replace implicit magic, conversions become a Conversion type class, and imports can import delegates by type to curb surprising scope.
AI-written summary · about
chapters (8)
- 0:00Intro
- 0:30History of Implicits
- 11:18Mistake #2
- 19:59Mistake #5: Implicit Imports Are Too Close to Normal Ones
- 23:17New Design Principles
- 32:00Delegates For Typeclasses
- 34:07Delegates For Implicit Conversions
- 39:03The Hardest Thing...
related talks
01h 04mKeynote - What to Leave Implicit
42mImplicits Revisited
46mImplicits Inspected and Explained
29mIMPLICITS IN SCALA 3
29mSay goodbye to implicits - contextual abstractions in Scala 3
43mDon't Fear the Implicits: Everything You Need to Know About Typeclasses
30mLessons Learned from 15 Years of Scala in the Wild
45mHow to be polymorphic in Scala
