// ets_tracing: off import { chain_ } from "./core.js" import type { Effect } from "./effect.js" import { map_ } from "./map.js" /** * Applicative's ap */ export function ap( fa: Effect, __trace?: string ): (fab: Effect B>) => Effect { return (fab) => ap_(fab, fa, __trace) } /** * Applicative's ap */ export function ap_( fab: Effect B>, fa: Effect, __trace?: string ): Effect { return chain_(fab, (ab) => map_(fa, ab), __trace) }