"use strict";Object.defineProperty(exports, "__esModule", {value: true});

var _chunk6C3VEZWHjs = require('./chunk-6C3VEZWH.js');

// src/Magma.ts
var Magma_exports = {};
_chunk6C3VEZWHjs.__export.call(void 0, Magma_exports, {
  concatAll: () => concatAll,
  endo: () => endo,
  filterFirst: () => filterFirst,
  filterSecond: () => filterSecond,
  reverse: () => reverse
});
var reverse = (M) => ({
  concat: (first, second) => M.concat(second, first)
});
var filterFirst = (predicate) => (M) => ({
  concat: (first, second) => predicate(first) ? M.concat(first, second) : second
});
var filterSecond = (predicate) => (M) => ({
  concat: (first, second) => predicate(second) ? M.concat(first, second) : first
});
var endo = (f) => (M) => ({
  concat: (first, second) => M.concat(f(first), f(second))
});
var concatAll = (M) => (startWith) => (as) => as.reduce((a, acc) => M.concat(a, acc), startWith);








exports.reverse = reverse; exports.filterFirst = filterFirst; exports.filterSecond = filterSecond; exports.endo = endo; exports.concatAll = concatAll; exports.Magma_exports = Magma_exports;
