~/talk

Omnidirectional type inference for ML

Talkat WITS 2026 · on Saturday, 2026-01-17· [compilers-and-language-design]
links:none on file
links:none on file
slides:none on file

Proposes omnidirectional type inference: constraints can suspend on unification variables and resume when shape information arrives via suspended match constraints, restoring principality for ML extensions. Introduces partial generalization and incremental instantiation so let‑bindings can be generalized and later refined without backtracking. Implements an efficient solver using levels, union‑find and waitlists, demonstrates principal inference for OCaml features (static record/constructor overloading and semi‑explicit first‑class polymorphism), and reports no regressions on existing checked code though benchmarks are pending.

AI-written summary · about

  1. 0:00Introduction
  2. 1:25Bidirectional typing limitations
  3. 4:59Constraint-based typing
  4. 6:26Omnidirectional type inference
  5. 8:11Implementing omnidirectionality
  6. 8:31Lambda calculus implementation
  7. 9:11Let polymorphism scaling
  8. 14:32Summary
  9. 15:35Q&A: Higher rank polymorphism
  10. 16:17Q&A: Efficiency benchmarks
  11. 17:26Q&A: Okamel integration
  12. 18:57Q&A: Formal expressivity
  13. 20:09Q&A: Functional logic programming
~/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.