MVFM

error/guard

Assert a condition, failing with an error if it is false

// 1. make an app
const app = mvfm(prelude, error);

// 2. make a program
const prog = app({ balance: "number" }, ($) => {
  const withdrawal = 50;
  return $.try(
    $.begin(
      $.guard($.gte($.input.balance, withdrawal), "insufficient funds"),
      $.sub($.input.balance, withdrawal)
    )
  ).catch((err) => $.concat("error: ", err));
});

// 3. run
await fold(
  defaults(app),
  injectInput(prog, { balance: 30 })
);
Ctrl+Enter