@effect-ts/system
Version:
Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.
51 lines (40 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.unless = unless;
exports.unlessM = unlessM;
exports.unlessM_ = unlessM_;
exports.unless_ = unless_;
var _asUnit = /*#__PURE__*/require("./asUnit.js");
var _core = /*#__PURE__*/require("./core.js");
// ets_tracing: off
/**
* The moral equivalent of `if (!p) exp`
*
* @ets_data_first unless_
*/
function unless(b, __trace) {
return self => (0, _core.suspend)(() => b() ? _core.unit : (0, _asUnit.asUnit)(self), __trace);
}
/**
* The moral equivalent of `if (!p) exp`
*/
function unless_(self, b, __trace) {
return (0, _core.suspend)(() => b() ? _core.unit : (0, _asUnit.asUnit)(self), __trace);
}
/**
* The moral equivalent of `if (!p) exp` when `p` has side-effects
*
* @ets_data_first unlessM_
*/
function unlessM(b, __trace) {
return self => unlessM_(self, b, __trace);
}
/**
* The moral equivalent of `if (!p) exp` when `p` has side-effects
*/
function unlessM_(self, b, __trace) {
return (0, _core.chain_)(b, _ => _ ? _core.unit : (0, _asUnit.asUnit)(self), __trace);
}
//# sourceMappingURL=unless.js.map