"use strict"
Object.defineProperty(exports, "__esModule", { value: true })
exports.ap_ = exports.ap = void 0
// tracing: off
const core_1 = require("./core")
const map_1 = require("./map")
/**
 * Applicative's ap
 */
function ap(fa, __trace) {
  return (fab) => ap_(fab, fa, __trace)
}
exports.ap = ap
/**
 * Applicative's ap
 */
function ap_(fab, fa, __trace) {
  return (0, core_1.chain_)(fab, (ab) => (0, map_1.map_)(fa, ab), __trace)
}
exports.ap_ = ap_
//# sourceMappingURL=ap.js.map
