spec-memory.md settled them and NEXT.md kept asking. Ranked item 1 now states the decisions and points at the section that holds them. The build order is new. An allocator is a procedure plus a data pointer, and check.ml refuses function values four ways as milestone 5, which reads as milestone 6 depending on milestone 5. It does not: every one of those refusals is about surface syntax, and the compiler already builds function values no Flan type names — a handler-bind clause reaching flan_handler's fn pointer, and a dev build's call through an indirection cell. So Allocator is a builtin opaque type and the built-in allocators need nothing from milestone 5. A user-written one does, because it needs a defn's name in value position. Also recorded: 5 and 6 interleave, since the macro expander is blocked on union values; the operation table has free-all and no retain-capacity, which Zig splits and a frame arena wants; and two line citations in the Allocators section point at the wrong place while the claims they support are true.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%