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">

92 lines (81 loc) 1.83 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.arrayMonoid = exports.stringMonoid = exports.product = exports.sum = exports.any = exports.all = undefined; exports.concatAll = concatAll; exports.getProductMonoid = getProductMonoid; exports.getDualMonoid = getDualMonoid; var _Semigroup = require('./Semigroup'); // Fold a list using the monoid function concatAll(monoid, as) { return as.reduce(monoid.concat, monoid.empty()); } function getProductMonoid(amonoid, bmonoid) { return { empty: function empty() { return [amonoid.empty(), bmonoid.empty()]; }, concat: (0, _Semigroup.getProductSemigroup)(amonoid, bmonoid).concat }; } function getDualMonoid(monoid) { return { empty: monoid.empty, concat: function concat(x, y) { return monoid.concat(y, x); } }; } // Boolean monoid under conjunction var all = exports.all = { empty: function empty() { return true; }, concat: function concat(x, y) { return x && y; } }; // Boolean monoid under disjunction var any = exports.any = { empty: function empty() { return false; }, concat: function concat(x, y) { return x || y; } }; // Monoid under addition var sum = exports.sum = { empty: function empty() { return 0; }, concat: function concat(x, y) { return x + y; } }; // Monoid under multiplication var product = exports.product = { empty: function empty() { return 1; }, concat: function concat(x, y) { return x * y; } }; var stringMonoid = exports.stringMonoid = { empty: function empty() { return ''; }, concat: function concat(x, y) { return x + y; } }; var arrayMonoid = exports.arrayMonoid = { empty: function empty() { return []; }, concat: function concat(x, y) { return x.concat(y); } };