Elixir v1.20 released: now a gradually typed language
4 hours ago
- #Type System
- #Programming
- #Elixir
- Elixir v1.20 introduces a gradual type system with set-theoretic types, performing type inference and checking without requiring type annotations.
- The dynamic() type in Elixir has compatibility and narrowing properties, enabling detection of verified bugs with low false positives by reporting violations only when types are disjoint.
- Type inference supports guards, clauses, and constructs like case and conditionals, allowing narrowing across clauses and detecting redundant code or dead code.
- Compilation time improvements include faster builds on multi-core machines and a new :module_definition compiler option to potentially speed up large projects.
- Future work includes introducing type signatures after addressing recursive types, parametric types, and efficient map traversal, with community updates via Elixir Forum.