The reference (base.scm) has two distinct operations that narju
once conflated into a single lenient force-code:
force-code — strict projection: (code e) → e, anything else
errors expected code, not .... This is what reifyc wraps, so
it governs If-Code branches, both Run arms (staged and run-now),
the body of a lift-Clo η-expansion, and code?’s staged second
argument. Verified against base.scm running under Chez: e.g.
(run 0 (lambda (var 1))), (run 0 5), (if (lift 1) 2 3),
(code? (lift 1) 2), and (lift (lambda 5)) all error.
lift — the NBE reify operator: numbers/symbols self-represent,
closures η-expand, pairs recurse on force-code’d components.
This is the only lenient coercion in the reference, and only
lift itself (plus narju’s LiftRef and staged-log paths, whose
strictness base.scm never exercises, so they have no oracle to
check against) may use it.