Elixir 1.20 adds gradual typing, enabling dead‑code detection without annotations
Elixir 1.20 introduces a set‑theoretic gradual type system that infers types and flags dead code and verified bugs without requiring any type annotations. The new dynamic() type lets the compiler narrow types at runtime, delivering static‑like safety while preserving Elixir’s dynamic nature.