@fpjs/overture
Version:
A Javascript prelude
19 lines (18 loc) • 631 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.replicate = exports.replace = exports.map = exports.isFunctor = void 0;
var _base = require("@fpjs/overture/base");
const isFunctor = x => "fantasy-land/map" in x;
exports.isFunctor = isFunctor;
const map = ab => a => {
const fmap = a["fantasy-land/map"];
if (fmap === undefined) {
throw TypeError(`'${(0, _base.type)(a)}' is not a Functor.`);
}
return fmap.call(a, ab);
};
exports.map = map;
const replace = exports.replace = (0, _base.compose)(map)(_base.constant);
const replicate = exports.replicate = (0, _base.flip)(replace);