Implicits Inspected and Explained
summary
Step-by-step demos use the Represent REPL and JavaP bytecode to show that implicits get filled into calls at compile time and disappear from generated bytecode; examples include actor ! with an implicit sender, Future with implicit ExecutionContext, Numeric[T] for sum, and a Finagle client builder that requires three implicit "client config evidence" pieces and fails compilation with Builder is not fully configured via @implicitNotFound. The resolution follows implicit scope rules: local simple-name, companion/package objects, supertypes. Implicit conversions do not chain (only one conversion is applied).
AI-written summary · about
chapters (8)
- 0:00Implicits in Scala
- 6:32Power of implicits
- 8:44Implicit parameters
- 17:37Implicit conversions
- 23:04Implicit classes
- 25:34Compiler resolution
- 33:26Type classes benefits
- 44:30Summary
related talks
50mThere's a prolog in your scala
49mIdris for (im)practical Scala programmers
55mThe Shape of Shapeless (Part 2)
40mGuarded Impredicativity
48mA gentle introduction to type level programming in Scala
44mTelling the Truth with Types
56mThe Shape of Shapeless (Part 1)
42mLet the Compiler Help You: How to Make the Most of Scala's Type System
