@fpjs/overture
Version:
A Javascript prelude
31 lines (30 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.runIdentity = exports.Identity = void 0;
var _base = require("@fpjs/overture/base");
var _functor = require("@fpjs/overture/algebras/functor");
var _setoid = require("@fpjs/overture/algebras/setoid");
var _ord = require("@fpjs/overture/algebras/ord");
const Identity = x => ({
'@@type': 'Identity',
'constructor': Identity,
'runIdentity': x,
'fantasy-land/map': f => Identity(f(x)),
'fantasy-land/ap': (0, _functor.map)(f => f(x)),
'fantasy-land/chain': f => f(x),
'fantasy-land/reduce': (f, z) => f(z, x),
'fantasy-land/equals': y => (0, _setoid.equals)(x)(y.runIdentity),
'fantasy-land/lte': y => (0, _ord.lte)(x)(y.runIdentity),
'fantasy-land/traverse': (F, f) => (0, _functor.map)(Identity)(f(x))
});
exports.Identity = Identity;
Identity['fantasy-land/of'] = Identity;
const runIdentity = o => {
if (!('runIdentity' in o)) {
throw TypeError(`${(0, _base.type)(o)} is not Identity`);
}
return o['runIdentity'];
};
exports.runIdentity = runIdentity;