/** * @tsplus static DSL getApplyF */ export function getApplyF(F: Monad): Apply { const flatMap_ = DSL.flatMapF_(F) return HKT.instance({ map: F.map, both: ( fb: HKT.Kind ) => (fa: HKT.Kind): HKT.Kind => flatMap_(fb, (b) => F.map((a: A) => [a, b] as const)(fa)) }) }