Part of #3.
What
The per-file fold-or-run decision and the identity-taint fixpoint, implementing #14 and #15.
This is the one that matters
The expression layer (#19) is table stakes. This is the part with no equivalent in the comparable systems, because they have no fallback path to keep consistent. Both propagation directions have to be here:
- a file that falls back forces the files it imports to fall back
- a file forced to fall back forces back every file that already folded while capturing one of its objects
Expect this to be the hard one
It is the part of fold-import.ts most entangled with chant's discovery, and the extraction will not be mechanical. Do not let the reference implementation ship without it — a reference implementation that stops at expressions demonstrates the least interesting half of the claim and invites exactly the comparison the paper is trying to avoid.
Done when
The fixpoint terminates, identity fixtures pass, and chant agrees on all of them.
Part of #3.
What
The per-file fold-or-run decision and the identity-taint fixpoint, implementing #14 and #15.
This is the one that matters
The expression layer (#19) is table stakes. This is the part with no equivalent in the comparable systems, because they have no fallback path to keep consistent. Both propagation directions have to be here:
Expect this to be the hard one
It is the part of
fold-import.tsmost entangled with chant's discovery, and the extraction will not be mechanical. Do not let the reference implementation ship without it — a reference implementation that stops at expressions demonstrates the least interesting half of the claim and invites exactly the comparison the paper is trying to avoid.Done when
The fixpoint terminates, identity fixtures pass, and chant agrees on all of them.