import { Kind, $ } from '../kinds/index.js'; type GenericFnA = N extends 0 ? (...args: $) => $ : N extends 1 ? (...args: $) => $ : N extends 2 ? (...args: $) => $ : N extends 3 ? (...args: $) => $ : N extends 4 ? (...args: $) => $ : N extends 5 ? (...args: $) => $ : N extends 6 ? (...args: $) => $ : N extends 7 ? (...args: $) => $ : N extends 8 ? (...args: $) => $ : N extends 9 ? (...args: $) => $ : N extends 10 ? (...args: $) => $ : N extends 11 ? (...args: $) => $ : N extends 12 ? (...args: $) => $ : N extends 13 ? (...args: $) => $ : N extends 14 ? (...args: $) => $ : N extends 15 ? (...args: $) => $ : never; type GenericFnB = N extends 0 ? (...args: $) => $ : N extends 1 ? (...args: $) => $ : N extends 2 ? (...args: $) => $ : N extends 3 ? (...args: $) => $ : N extends 4 ? (...args: $) => $ : N extends 5 ? (...args: $) => $ : N extends 6 ? (...args: $) => $ : N extends 7 ? (...args: $) => $ : N extends 8 ? (...args: $) => $ : N extends 9 ? (...args: $) => $ : N extends 10 ? (...args: $) => $ : N extends 11 ? (...args: $) => $ : N extends 12 ? (...args: $) => $ : N extends 13 ? (...args: $) => $ : N extends 14 ? (...args: $) => $ : N extends 15 ? (...args: $) => $ : never; type GenericFnC = N extends 0 ? (...args: $) => $ : N extends 1 ? (...args: $) => $ : N extends 2 ? (...args: $) => $ : N extends 3 ? (...args: $) => $ : N extends 4 ? (...args: $) => $ : N extends 5 ? (...args: $) => $ : N extends 6 ? (...args: $) => $ : N extends 7 ? (...args: $) => $ : N extends 8 ? (...args: $) => $ : N extends 9 ? (...args: $) => $ : N extends 10 ? (...args: $) => $ : N extends 11 ? (...args: $) => $ : N extends 12 ? (...args: $) => $ : N extends 13 ? (...args: $) => $ : N extends 14 ? (...args: $) => $ : N extends 15 ? (...args: $) => $ : never; type GenericFnD = N extends 0 ? (...args: $) => $ : N extends 1 ? (...args: $) => $ : N extends 2 ? (...args: $) => $ : N extends 3 ? (...args: $) => $ : N extends 4 ? (...args: $) => $ : N extends 5 ? (...args: $) => $ : N extends 6 ? (...args: $) => $ : N extends 7 ? (...args: $) => $ : N extends 8 ? (...args: $) => $ : N extends 9 ? (...args: $) => $ : N extends 10 ? (...args: $) => $ : N extends 11 ? (...args: $) => $ : N extends 12 ? (...args: $) => $ : N extends 13 ? (...args: $) => $ : N extends 14 ? (...args: $) => $ : N extends 15 ? (...args: $) => $ : never; export type GenericFn = Alpha extends 'A' ? GenericFnA : Alpha extends 'B' ? GenericFnB : Alpha extends 'C' ? GenericFnC : Alpha extends 'D' ? GenericFnD : never; /** * apply :: a -> (a -> b) -> b * @param a : parameter to apply to function * @returns (a -> b) -> b */ export declare const apply: (a: A) => (f: (a: A) => B) => B; export declare const identity: (a: A) => A; export {};