Typing Erlang with eqWAlizer
summary
WhatsApp adopts eqWAlizer as a static type checker and gets 100% of the codebase checked within a year, progressing from 63% in July to 94% in December and finishing the last 6% in three months. eqWAlizer uses local type inference with a Dynamic type to mix typed and untyped code, runs in CI and blocks landing on type failures, complements incremental Dialyzer (3–7x faster) and reports many real bugs, so the rollout proves practical at scale.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 1:04WhatsApp Code Base History
- 2:30Why add specs
- 4:01Problems with specs
- 6:05equalizer
- 6:27dialysis
- 7:15Gradle typing
- 8:03PHP
- 9:33Dynamic Type
- 10:42Type Checkers
- 11:56Development Goals
- 18:44Graduality
- 20:17Types
- 21:15Gradle
- 21:27Timeline
- 22:27Conclusions
- 22:53Questions
related talks
34mAnalysing and Understanding Erlang Programmatically
40mTypes and Erlang from Dialyzer to (...)
46mThe Calculated Typer (Functional Pearl)
40mGradualizer: challenges implementing a type checker
23mHow Elixir Learns Types from Guards
21mPapers We Love - Elixir Edition
20mPractical and sound equality tests, automatically
01h 02mLanguage Design meets Verifying Compilers
