"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.do = exports.bind = exports.let = void 0;
// tracing: off
const Function_1 = require("../Function");
const cause_1 = require("./cause");
const core_1 = require("./core");
const bind = (tag, f) => (mk) => ((0, core_1.chain)((k) => ((0, core_1.map)((a) => ({ ...k, [tag]: a }))(f(k))))(mk));
exports.bind = bind;
const let_ = (tag, f) => (mk) => ((0, core_1.map)((k) => ({ ...k, [tag]: f(k) }))(mk));
exports.let = let_;
const do_ = (0, cause_1.fail)({});
exports.do = do_;
//# sourceMappingURL=do.js.map