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

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


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

// src/Choice.ts
var Choice_exports = {};
_chunk6C3VEZWHjs.__export.call(void 0, Choice_exports, {
  fanIn: () => fanIn,
  fanin: () => fanin,
  split: () => split,
  splitChoice: () => splitChoice
});
function split(P, C) {
  return (pab, pcd) => C.compose(P.right(pcd), P.left(pab));
}
function fanIn(P, C) {
  const splitPC = split(P, C);
  return (pac, pbc) => C.compose(
    P.promap(C.id(), (cc) => cc._tag === "Left" ? cc.left : cc.right, _chunkSQA7G4TEjs.identity),
    splitPC(pac, pbc)
  );
}
function splitChoice(F) {
  return split(F, F);
}
function fanin(F) {
  return fanIn(F, F);
}







exports.split = split; exports.fanIn = fanIn; exports.splitChoice = splitChoice; exports.fanin = fanin; exports.Choice_exports = Choice_exports;
