UNPKG

@fpjs/overture

Version:
31 lines (30 loc) 1.07 kB
"use strict"; 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;