Keynote - What to Leave Implicit
summary
Scala’s implicits are evaluated as concrete design changes: Dotty already merges a tighter implicit conversion rule and implicit converters, and adds lazy implicits to stop diverging searches. Implicit function types become first-class, letting 2,600+ repetitive implicit contexts (example: Dotty compiler) collapse into typed closures that optimize to plain implicits and run >7× faster than Reader monads. A coherence proposal and Any/AnyRef reshaping aim to prevent ambiguous type-class instances; some items are implemented, others remain proposals.
AI-written summary · about
chapters (28)
- 0:00Intro
- 1:27Traditional ways to express context
- 5:11The Functional Way
- 5:37Functional is Good
- 7:38Ground Rules
- 9:47Implicit Classes
- 11:11Reasoning Footprint of Implicitness
- 13:27Extension Methods
- 15:23Late Tralt Implementation
- 17:28What about simple conversions?
- 21:17Anti Patterns
- 27:52Implicit Parameters - Use Cases Implicit parameters can
- 28:28Prove Theorems
- 31:34Establish Context
- 36:30Implement Type Classes
- 37:41Tighten Rules for Implicit Conversions
- 40:26Lazy Implicits
- 42:42Multiple Implicit Parameter Lists
- 47:16Coherence Rules Out Ambiguities
- 49:48Parametricity
- 51:52Implicit Function Types
- 52:46Towards a solution
- 54:34Two Rules for Typing
- 55:37Revised Example
- 56:53Efficiency
- 57:32The Reader Monad
- 59:02An encore: The Builder Pattern
- 59:45Scala Implementation
related talks
48mKeynote: Some Mistakes We Made When Designing Implicits
29mSay goodbye to implicits - contextual abstractions in Scala 3
42mImplicits Revisited
46mImplicits Inspected and Explained
29mIMPLICITS IN SCALA 3
43mDon't Fear the Implicits: Everything You Need to Know About Typeclasses
36mSay goodbye to implicits contextual abstractions in Scala 3
51mOpening Keynote: New Functional Constructs in Scala 3
