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

var _chunk7K74W2G3js = require('./chunk-7K74W2G3.js');



var _chunkQ2LZCTWPjs = require('./chunk-Q2LZCTWP.js');


var _chunkSQA7G4TEjs = require('./chunk-SQA7G4TE.js');


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

// src/Applicative.ts
var Applicative_exports = {};
_chunk6C3VEZWHjs.__export.call(void 0, Applicative_exports, {
  getApplicativeComposition: () => getApplicativeComposition,
  getApplicativeMonoid: () => getApplicativeMonoid
});
function getApplicativeMonoid(F) {
  const f = _chunkQ2LZCTWPjs.getApplySemigroup.call(void 0, F);
  return (M) => ({
    concat: f(M).concat,
    empty: F.of(M.empty)
  });
}
function getApplicativeComposition(F, G) {
  const map = _chunk7K74W2G3js.getFunctorComposition.call(void 0, F, G).map;
  const _ap = _chunkQ2LZCTWPjs.ap.call(void 0, F, G);
  return {
    map,
    of: (a) => F.of(G.of(a)),
    ap: (fgab, fga) => _chunkSQA7G4TEjs.pipe.call(void 0, fgab, _ap(fga))
  };
}





exports.getApplicativeMonoid = getApplicativeMonoid; exports.getApplicativeComposition = getApplicativeComposition; exports.Applicative_exports = Applicative_exports;
