Opaque Types To Infinity
summary
Shows a concrete technique to get zero‑cost opaque types in Scala using abstract type members plus a globally ascribed val, demonstrates subs proof functions for controlled equality and typeclass‑based constraints (functor/contravariant/traverse) to permit or forbid coercions, warns about translucency and coherence problems with subtyping, and builds a working recursive Fix [infinite] type as used in Scalaz 8 to encode recursion schemes with no runtime wrapper; requires modern Scala (notes Scala 2.12.4 specifics about implicit search).
AI-written summary · about
chapters (24)
- 0:00Intro
- 0:40Opaque Types
- 2:38The goal
- 5:46The signature
- 7:09The structure
- 11:46Public vs private
- 15:58Functions
- 17:38Proof of Type Quality
- 21:01ObjectOriented Subtyping
- 23:13Type Alias
- 23:54Subtyping Relationships
- 25:23Subtyping Signature
- 26:28Subtyping
- 28:11Type Classes
- 30:03Conformance
- 31:21Label and strain
- 36:33Functors
- 39:25List Types
- 41:16Recursion
- 42:04Vowel
- 45:52Questions
- 48:09Recursion Schemes
- 49:39Implicit Resolve
- 51:50Closing Notes
related talks
01h 39mIsomorphic Reasoning: Counting with Types Part 1
02h 28mIsomorphic Reasoning: Counting with Types Part 2
01h 52mIsomorphic Reasoning: Counting with Types Part 3
01h 20mA Practical Introduction to Haskell GADTs
49mFree vs Tagless Final: What, Why, When?
45mA practical introduction to Category Theory
46mBeing Creative with Genetic Algorithms and Typeclasses
52mBake Real-life Apps with a Handful of Free, Coproducts & Types
