// ets_tracing: off import { checkTraced, traced, untraced } from "./core.js" import type { Effect } from "./effect.js" function restore( b: boolean ): (self: Effect) => Effect { return (self) => (b ? traced(self) : untraced(self)) } /** * Makes the effect untraced, but passes it a restore function that can be used to restore * the inherited traceability from whatever region the effect is composed into. */ export function untracedMask( f: ( restore: (self: Effect) => Effect ) => Effect ): Effect { return checkTraced((b) => untraced(f(restore(b)))) } /** * Makes the effect traced, but passes it a restore function that can be used to restore * the inherited traceability from whatever region the effect is composed into. */ export function tracedMask( f: ( restore: (self: Effect) => Effect ) => Effect ): Effect { return checkTraced((b) => traced(f(restore(b)))) }