/** F3 — Control monomers: MC_24–MC_31 */ export const mcIf = (cond: boolean, t: T, e: T): T => cond ? t : e; export const mcLoop = (n: number, init: T, f: (a: T) => T): T => { let acc = init; for (let i = 0; i < Math.min(Math.trunc(n), 1_000_000); i++) acc = f(acc); return acc; }; export const nop = (v: T): T => v; export const halt = (code: number): number => Math.trunc(code); export const cmpEq = (a: number, b: number): boolean => a === b; export const cmpLt = (a: number, b: number): boolean => a < b; export const cmpGt = (a: number, b: number): boolean => a > b; export const mcCall = (f: (a: A) => B, arg: A): B => f(arg);