33 lines
1021 B
JavaScript
Executable File
33 lines
1021 B
JavaScript
Executable File
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.tapIO = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = void 0;
|
|
/**
|
|
* Lift a computation from the `IO` monad
|
|
*
|
|
* @since 2.10.0
|
|
*/
|
|
var Chain_1 = require("./Chain");
|
|
var function_1 = require("./function");
|
|
function fromIOK(F) {
|
|
return function (f) { return (0, function_1.flow)(f, F.fromIO); };
|
|
}
|
|
exports.fromIOK = fromIOK;
|
|
function chainIOK(F, M) {
|
|
return function (f) {
|
|
var g = (0, function_1.flow)(f, F.fromIO);
|
|
return function (first) { return M.chain(first, g); };
|
|
};
|
|
}
|
|
exports.chainIOK = chainIOK;
|
|
function chainFirstIOK(F, M) {
|
|
var tapIOM = tapIO(F, M);
|
|
return function (f) { return function (first) { return tapIOM(first, f); }; };
|
|
}
|
|
exports.chainFirstIOK = chainFirstIOK;
|
|
/** @internal */
|
|
function tapIO(F, M) {
|
|
var chainFirstM = (0, Chain_1.tap)(M);
|
|
return function (self, f) { return chainFirstM(self, (0, function_1.flow)(f, F.fromIO)); };
|
|
}
|
|
exports.tapIO = tapIO;
|