eff
Version:
An extensible effect monad based on the freer monad
42 lines (33 loc) • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.interpretReader = exports.get = void 0;
var _daggy = _interopRequireDefault(require("daggy"));
var _eff = require("./eff.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Reader = _daggy.default.taggedSum("Reader", {
get: []
});
var get = function get() {
return (0, _eff.send)(Reader.get);
};
exports.get = get;
var interpretReader = function interpretReader(i) {
return (0, _eff.interpreter)({
predicate: function predicate(x) {
return Reader.is(x);
},
handler: function handler(readerEffect) {
return readerEffect.cata({
get: function get() {
return function (continuation) {
return continuation(i);
};
}
});
}
});
};
exports.interpretReader = interpretReader;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvcmVhZGVyLmpzIl0sIm5hbWVzIjpbIlJlYWRlciIsImRhZ2d5IiwidGFnZ2VkU3VtIiwiZ2V0IiwiaW50ZXJwcmV0UmVhZGVyIiwiaSIsInByZWRpY2F0ZSIsIngiLCJpcyIsImhhbmRsZXIiLCJyZWFkZXJFZmZlY3QiLCJjYXRhIiwiY29udGludWF0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7Ozs7QUFFQSxJQUFNQSxNQUFNLEdBQUdDLGVBQU1DLFNBQU4sQ0FBZ0IsUUFBaEIsRUFBMEI7QUFDeENDLEVBQUFBLEdBQUcsRUFBRTtBQURtQyxDQUExQixDQUFmOztBQUlPLElBQU1BLEdBQUcsR0FBRyxTQUFOQSxHQUFNO0FBQUEsU0FBTSxlQUFLSCxNQUFNLENBQUNHLEdBQVosQ0FBTjtBQUFBLENBQVo7Ozs7QUFFQSxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLENBQUQ7QUFBQSxTQUM5QixzQkFBWTtBQUNYQyxJQUFBQSxTQUFTLEVBQUUsbUJBQUFDLENBQUM7QUFBQSxhQUFJUCxNQUFNLENBQUNRLEVBQVAsQ0FBVUQsQ0FBVixDQUFKO0FBQUEsS0FERDtBQUVYRSxJQUFBQSxPQUFPLEVBQUUsaUJBQUFDLFlBQVk7QUFBQSxhQUNwQkEsWUFBWSxDQUFDQyxJQUFiLENBQWtCO0FBQ2pCUixRQUFBQSxHQUFHLEVBQUU7QUFBQSxpQkFBTSxVQUFBUyxZQUFZO0FBQUEsbUJBQUlBLFlBQVksQ0FBQ1AsQ0FBRCxDQUFoQjtBQUFBLFdBQWxCO0FBQUE7QUFEWSxPQUFsQixDQURvQjtBQUFBO0FBRlYsR0FBWixDQUQ4QjtBQUFBLENBQXhCIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IGRhZ2d5IGZyb20gXCJkYWdneVwiO1xuXG5pbXBvcnQgeyBpbnRlcnByZXRlciwgc2VuZCB9IGZyb20gXCIuL2VmZi5qc1wiO1xuXG5jb25zdCBSZWFkZXIgPSBkYWdneS50YWdnZWRTdW0oXCJSZWFkZXJcIiwge1xuXHRnZXQ6IFtdLFxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXQgPSAoKSA9PiBzZW5kKFJlYWRlci5nZXQpO1xuXG5leHBvcnQgY29uc3QgaW50ZXJwcmV0UmVhZGVyID0gKGk6IGFueSkgPT5cblx0aW50ZXJwcmV0ZXIoe1xuXHRcdHByZWRpY2F0ZTogeCA9PiBSZWFkZXIuaXMoeCksXG5cdFx0aGFuZGxlcjogcmVhZGVyRWZmZWN0ID0+XG5cdFx0XHRyZWFkZXJFZmZlY3QuY2F0YSh7XG5cdFx0XHRcdGdldDogKCkgPT4gY29udGludWF0aW9uID0+IGNvbnRpbnVhdGlvbihpKSxcblx0XHRcdH0pLFxuXHR9KTtcbiJdfQ==