Don't Fear the Implicits: Everything You Need to Know About Typeclasses
summary
Explains how Scala implicits implement typeclasses by building a quantity type class example that evolves from inheritance to implicit vals, context bounds and an implicitly summon; shows companion-object defaults, constructors (a one‑line simple constructor), combinators like contramap, and generic implicit defs for Option/List; integrates Circe encoders into akka‑http marshallers to derive JSON and HTTP serializers; warns about ambiguous or harmful defaults, serialization needs, and advises providing apply, constructors and opt‑out paths.
AI-written summary · about
chapters (19)
- 0:00Start
- 5:30Example
- 6:18DistributedDataset
- 15:21Context bounds
- 15:39Implicit resolution
- 16:57Local implicit
- 17:14Imported implicits
- 17:45Inherited implicits
- 18:06Overriding implicits
- 20:48Operators
- 21:59Error messages
- 22:53Shortcut for implicitly
- 24:18Typeclass constructors
- 28:20Combinators: Circe
- 30:12Generic instances: Circe
- 36:23Default instances
- 38:28Serializable
- 39:58Questions to ask
- 42:27Summary
related talks
45mHow to be polymorphic in Scala
31mTYPECLASSES — A TYPE SYSTEM CONSTRUCT
29mIMPLICITS IN SCALA 3
29mSay goodbye to implicits - contextual abstractions in Scala 3
01h 04mKeynote - What to Leave Implicit
42mImplicits Revisited
48mKeynote: Some Mistakes We Made When Designing Implicits
20mType Classes for the Rest of Us
