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

var _chunk5BEB3DGNjs = require('./chunk-5BEB3DGN.js');


var _chunkEBISTSVAjs = require('./chunk-EBISTSVA.js');


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


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

// src/FromReader.ts
var FromReader_exports = {};
_chunk6C3VEZWHjs.__export.call(void 0, FromReader_exports, {
  ask: () => ask2,
  asks: () => asks,
  chainFirstReaderK: () => chainFirstReaderK,
  chainReaderK: () => chainReaderK,
  fromReaderK: () => fromReaderK,
  tapReader: () => tapReader
});
function ask2(F) {
  return () => F.fromReader(_chunk5BEB3DGNjs.ask.call(void 0, ));
}
function asks(F) {
  return F.fromReader;
}
function fromReaderK(F) {
  return (f) => _chunkSQA7G4TEjs.flow.call(void 0, f, F.fromReader);
}
function chainReaderK(F, M) {
  const fromReaderKF = fromReaderK(F);
  return (f) => (ma) => M.chain(ma, fromReaderKF(f));
}
function chainFirstReaderK(F, M) {
  const tapM = tapReader(F, M);
  return (f) => (self) => tapM(self, f);
}
function tapReader(F, M) {
  const tapM = _chunkEBISTSVAjs.tap.call(void 0, M);
  return (self, f) => tapM(self, _chunkSQA7G4TEjs.flow.call(void 0, f, F.fromReader));
}









exports.ask = ask2; exports.asks = asks; exports.fromReaderK = fromReaderK; exports.chainReaderK = chainReaderK; exports.chainFirstReaderK = chainFirstReaderK; exports.tapReader = tapReader; exports.FromReader_exports = FromReader_exports;
