~/talk

How Elixir Learns Types from Guards

Talkat ElixirConf EU 2026 · 2026-04-23..04-24· [compilers-and-language-design]
links:none on file
slides:none on file

Elixir 1.20 computes precise types from actual guard expressions, turning guards like is_integer into concrete constraints, deriving intersection and union shapes, detecting negation types (map key absent, tuples of exact sizes, nonempty lists), and flagging impossible guards and redundant clauses. The checker uses pattern/guard ordering and standard library function preconditions (so-called reverse arrows) to refine inputs and outputs, emits more accurate warnings, recognizes raising paths as type none, and plans recursive types and polymorphism next.

AI-written summary · about

  1. 0:00Elixir type inference from guards
  2. 1:05Precise domain inference benefits
  3. 2:08Guards enable advanced analysis
  4. 5:20Pattern matching and guard refinement
  5. 8:38Imprecise guard evidence handling
  6. 10:29Complex guard expressions analysis
  7. 13:17Guards and type accumulation
  8. 15:26Refining function inputs
  9. 18:15Type system improvements timeline
  10. 19:38Future work status
  11. 20:03Q&A on guards and safety
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.