Summary
NewEmpty documents an interpreter with no predicates or operators in interpreter.go:23-28, but root tests do not call it and coverage.txt:2 records its constructor branch as uncovered.
Why it matters
The public empty-interpreter constructor needs an executable contract that distinguishes it from New and prevents accidental bootstrap or builtin registration.
Scope
Add TestNewEmpty to interpreter_test.go for the documented empty state.
Acceptance criteria
Verification
Run go test . -run '^TestNewEmpty$' and assert the exact rendered error from the missing zero-arity procedure query.
Summary
NewEmptydocuments an interpreter with no predicates or operators ininterpreter.go:23-28, but root tests do not call it andcoverage.txt:2records its constructor branch as uncovered.Why it matters
The public empty-interpreter constructor needs an executable contract that distinguishes it from
Newand prevents accidental bootstrap or builtin registration.Scope
Add
TestNewEmptytointerpreter_test.gofor the documented empty state.Acceptance criteria
NewEmpty().QuerySolution("missing.").Err()renderserror(existence_error(procedure,missing/0),root).NewEmptyhas not registered builtins.NewEmptyhas not loaded bootstrap predicates or operators.Verification
Run
go test . -run '^TestNewEmpty$'and assert the exact rendered error from the missing zero-arity procedure query.