(Handle T) and (Pool T) land as types and as a runtime. A handle is one int64_t — slot index low, generation high — so it copies, zeroes and compares like the integer it is and owns nothing. A live slot's generation is odd, which makes a zeroed handle resolve to nothing rather than to slot zero, and makes iteration free. Wrapping retires the slot rather than reissuing it: 2^31 reuses is rare, and rare is not an answer when the failure is the silent wrong one the type exists to prevent. No surface yet — the checker still has no names for any of it.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%