import { Arity1, curry } from '@typed/lambda' import { chain } from '../chain' import { map } from '../map' /** * Apply a list of functions to a list of values. */ export const ap = curry((fn: ReadonlyArray>, value: ReadonlyArray): B[] => chain((f) => map(f, value), fn), ) as { (fn: ReadonlyArray>, value: ReadonlyArray): B[] (fn: ReadonlyArray>): (value: ReadonlyArray) => B[] }