MVFM

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