0%

Walking skeleton: imported newtype end-to-end

Goal

Thread the thinnest vertical slice of the descriptor from resolver to both executors: use "./m" { Meters } where Meters is a newtype, then Meters(42) constructs the same value on the evaluator AND the LLVM backend. Proves the resolver->descriptor->consumer path exists end-to-end before each phase section fleshes out its case.

Implementation Sketch

Add the minimal constructor-binding descriptor to ResolvedImports for the newtype case only; wire the evaluator + LLVM to bind Meters(..) from it; assert identical results across both executors on one fixture.

Spec References

Proposal Design rules 1-2 (type name + newtype constructor); Semantics (Backend neutrality descriptor). No spec-clause authoring here (section 05).

Work Items

  • Minimal newtype constructor-binding descriptor in ResolvedImports + eval + LLVM consumption; one cross-module fixture asserting Meters(42) is identical on the evaluator and the LLVM backend (debug+release).