← 研踪 PaperTrailarXiv:2611.04929 · v1
Properly defining Erlang lists
首次提交 2026-11-03 22:02
版本更新 2026-11-03 22:02
雷达观测 2026-11-04 23:39
摘要
We define list types, distinguishing proper lists, which end in the empty list, from improper lists, which may end in any value. Both are encoded as recursive types of cons cells, implemented in etylizer. This work found one OTP compiler bug. We propose a one-line sound improvement to Dialyzer's list handling that finds six instances of dead code in the OTP code base. We compare BEAM VM type checkers and catalogue how other languages design lists and cons cells.
作者备注:15 pages, compiled with typst
观测到的版本
相邻记录可能跳过中间版本;首次发现 v2 及以上也会标为版本更新。
v1 · 2026-11-03 22:02 · 最新观测版本
Properly defining Erlang lists
We define list types, distinguishing proper lists, which end in the empty list, from improper lists, which may end in any value. Both are encoded as recursive types of cons cells, implemented in etylizer. This work found one OTP compiler bug. We propose a one-line sound improvement to Dialyzer's list handling that finds six instances of dead code in the OTP code base. We compare BEAM VM type checkers and catalogue how other languages design lists and cons cells.
查看此版本解读 →查看此版本原文 ↗