UNPKG

@dillonkearns/elm-graphql

Version:

<img src="https://cdn.jsdelivr.net/gh/martimatix/logo-graphqelm/logo.svg" alt="dillonearns/elm-graphql logo" width="40%" align="right">

102 lines (85 loc) 1.63 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.inj = inj; exports.prj = prj; exports.runIO = runIO; exports.map = map; exports.ap = ap; exports.of = of; exports.chain = chain; exports.concat = concat; exports.getSemigroup = getSemigroup; exports.getMonoid = getMonoid; exports.fromEff = fromEff; exports.toEff = toEff; var _HKT = require('./HKT'); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var IsIO = function IsIO() { _classCallCheck(this, IsIO); }; function inj(a) { return a; } function prj(fa) { return fa; } function runIO(eff) { return prj(eff)(); } function map(f, fa) { return inj(function () { return f(runIO(fa)); }); } function ap(fab, fa) { return inj(function () { return runIO(fab)(runIO(fa)); }); } function of(a) { return inj(function () { return a; }); } function chain(f, fa) { return inj(function () { return runIO(f(runIO(fa))); }); } function concat(semigroup) { return function concat(fx, fy) { return inj(function () { return semigroup.concat(runIO(fx), runIO(fy)); }); }; } function getSemigroup(semigroup) { return { concat: concat(semigroup) }; } function getMonoid(monoid) { return { empty: function empty() { return of(monoid.empty()); }, concat: concat(monoid) }; } function fromEff(fa) { return fa; } function toEff(fa) { return fa; } if (false) { // eslint-disable-line ({ map: map, ap: ap, of: of, chain: chain }); }