dagql/commit
Validate and seal a DirtyExpr back into an immutable NExpr for folding.
// 1. make an app
const app = mvfm(prelude, console_);
// 2. make a program: x * 3
const prog = app({ x: "number" }, ($) =>
$.begin($.console.log("result:", $.mul($.input.x, 3)), $.mul($.input.x, 3))
);
const injected = injectInput(prog, { x: 7 });
// 3. dagql: replaceWhere returns a DirtyExpr
const dirtyResult = replaceWhere(
injected.__nexpr,
byKind("num/mul"),
"num/add"
);
// commit validates all child refs exist, then seals
const sealed = commit(dirtyResult);
// 4. fold: was 7*3=21, now 7+3=10
await fold(sealed, defaults(app)); Ctrl+Enter