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

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


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


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

// src/FunctorWithIndex.ts
var FunctorWithIndex_exports = {};
_chunk6C3VEZWHjs.__export.call(void 0, FunctorWithIndex_exports, {
  getFunctorWithIndexComposition: () => getFunctorWithIndexComposition,
  mapWithIndex: () => mapWithIndex
});
function mapWithIndex(F, G) {
  return (f) => (fa) => F.mapWithIndex(fa, (i, ga) => G.mapWithIndex(ga, (j, a) => f([i, j], a)));
}
function getFunctorWithIndexComposition(F, G) {
  const map = _chunk7K74W2G3js.getFunctorComposition.call(void 0, F, G).map;
  const _mapWithIndex = mapWithIndex(F, G);
  return {
    map,
    mapWithIndex: (fga, f) => _chunkSQA7G4TEjs.pipe.call(void 0, fga, _mapWithIndex(f))
  };
}





exports.mapWithIndex = mapWithIndex; exports.getFunctorWithIndexComposition = getFunctorWithIndexComposition; exports.FunctorWithIndex_exports = FunctorWithIndex_exports;
