The Trouble With Types
summary
Argues that static typing becomes practical by collapsing generics, existentials and higher-kinded types into name-based refinements, outlines a prototype compiler (Dotty) implementing the Dot calculus, and shows how parameterized types desugar to type members so variance and wildcards become bounded refinements. Proposes native union and intersection types to prevent type explosion, admits tooling and error-message work remain hard, and recommends a type debugger and projection compilation to simplify compilers and migrate Scala code.
AI-written summary · about
chapters (30)
- 0:00Intro
- 1:43Static: Points in Favor
- 3:10Dynamic: Points in Favor
- 4:54What is Good Design?
- 5:56Elements Of Great Designs
- 6:26Example: Bach Fugues
- 7:37What Is A Good Language for Design?
- 10:04Type Systems Landscape
- 11:24Static Type Systems
- 14:12(1) My Way or the Highway
- 16:28(3) Type it to the Max
- 18:22Making Good Use of Nothing
- 18:58Other Strengths of Dynamic
- 22:00(3) Cutting Corners
- 24:51Abstractions
- 26:26Types in Scala
- 29:19Non-Orthogonal Design
- 31:02Too Many Combinations?
- 31:43Projections Reduce Dimensionality
- 33:24Projections Help Remove Features
- 34:25Dot and Dotty
- 35:36Types in Dotty
- 36:28Modelling Generics
- 40:32Making Parameters Public
- 41:37Expressing Existentials
- 42:41Expressing Higher-Kinded
- 43:37In a Nutshell
- 45:35Will this Be Scala?
- 46:40The Essence of Scala
- 47:54Types Are Trouble
related talks
47mHistory and Philosophy of types
38mType Systems - The Good, Bad and Ugly
01h 57mTypes as Program Specifications: A Intro to Type-Level Programming in Haskell
43mType Clash: When Structural and Nominal Systems Collide
31mKnow Your Types - Bringing Static Types to Dynamic Languages
28mSecrets of the Scala Type System
47mThe Superpowers of Types
44mTelling the Truth with Types
