~/talk

All for one and none forall: Compiling polymorphic relations without(…)

Talkat miniKanren 2026 · on Monday, 2026-08-24· [compilers-and-language-design]
links:none on file
links:none on file
links:none on file
slides:none on file

Claims a compiler pass for semiringKanren that removes type variables without monomorphization by compiling polymorphic relations into one canonical small relation plus expansion, using equality patterns and "large-enough" instance thresholds. Implements expansion and special-cases tiny types (e.g. disequality fails for num1 but always succeeds for num2), emits vanilla semiringKanren code, and proves correctness (sketch in paper, full proof separate). Works beyond arity two and supports open polymorphic recursion.

AI-written summary · about

  1. 0:00Polymorphic relations intro
  2. 2:06Canren language overview
  3. 8:22Polymorphic sum swap
  4. 11:10Compiling with one array
  5. 17:15Edge cases in expansion
  6. 18:59Compiling polymorphic calls
  7. 20:23Compiling equal relation
  8. 21:46Conclusion
~/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.