Implicits Inspected and Explained
summary
Explains how Scala implicits are resolved (local simple name, then companion objects of involved types and their supertypes) and shows practical effects: actor implicit sender, Futures’ implicit ExecutionContext, and Finagle’s builder failing at compile time with a custom missing-implicit error. Demonstrates implicit conversions, implicit class enrichment, REPL-driven examples, javap bytecode inspection (no magic after compilation), and a working JSON type-class implementation using implicit writers and map serialization while warning that implicit conversions can silently change semantics.
AI-written summary · about
chapters (11)
- 0:00Scala implicits introduction
- 2:17What implicits enable
- 3:23Common implicits use cases
- 9:29Implicit parameters
- 12:42Implicit resolution rules
- 17:03Implicit conversion risks
- 21:01Implicit classes for enrichment
- 22:54How compiler resolves implicits
- 28:45Type classes with implicits
- 31:59JSON serialization comparison
- 40:38Summary and best practices
related talks
29mIMPLICITS IN SCALA 3
42mImplicits Revisited
29mSay goodbye to implicits - contextual abstractions in Scala 3
01h 04mKeynote - What to Leave Implicit
48mKeynote: Some Mistakes We Made When Designing Implicits
45mHow to be polymorphic in Scala
36mSay goodbye to implicits contextual abstractions in Scala 3
30mLessons Learned from 15 Years of Scala in the Wild
