Branch resolve-check (contains v3-generics-inc2, 19 commits back).
Design: docs/analysis_generics.md; inc2 record:
docs/summary_generics-inc2.md. Suite 196/196, incl.
GenericProg (single-formal Ident(INTEGER), exit 42).
ISO 10514-2 form: GENERIC DEFINITION/IMPLEMENTATION MODULE M(T :
TYPE) plus refinement DEFINITION MODULE X = M(actual). A refinement
instantiates by re-parsing the generic's source with the formals
bound to the actuals (SymTab.EnterTypeParamBound, Reenter; driver
registry maps generic name → file; the abstract template is never
emitted). Re-verified live: FROM IntId IMPORT Id; Id(42) → exit 42.
Probed 2026-10-15 (not in the suite):
GENERIC DEFINITION MODULE Pair (T : TYPE; U : TYPE);
PROCEDURE First(x : T; y : U) : T; ...
DEFINITION MODULE IntChar = Pair(INTEGER, CHAR); ...
Compiles (Parsed correctly) but fails at link: undefined
First_4. The emitted .ssa references First_4 once (call site) and
defines no such function — the implementation unit's instantiation
drops (or misnames) the body when there is more than one formal. The
inc2 doc says multiple formals are "threaded but only a single T is
exercised": threading covers parse, not emit. Repro files (throwaway,
not committed): /tmp/opencode/g2*.mod.
GENERIC CLASS; generics with a program module.cd .../m2compiler-V3/compiler
./M2 tests/g_ident.def tests/g_ident.mod tests/g_intid.def \
tests/g_intid.mod tests/g_prog.mod # GenericProg session
Multi-formal repro: rebuild /tmp/opencode/g2*.mod per §"Fresh
finding" above, then qbe + cc to observe the link failure.