/** * Performs unsafe coercion of types * * @tsplus macro identity */ export declare function unsafeCoerce(a: A): B; /** * Models () => A */ export interface Lazy { (): A; } /** * Models (a: A) => a is B */ export interface Refinement { (a: A): a is B; } /** * Models (a: A) => A */ export interface Endomorphism { (a: A): A; } /** * Models (...args: A) => B */ export interface FunctionN, B> { (...args: A): B; } /** * Models a function argument which is evaluated lazily. * * For example: * * ```typescript * declare function succeed(a: () => A): Effect * ``` * * @tsplus type tsplus/LazyArgument */ export interface LazyArg { (): A; } /** * Will raise if called */ export declare function absurd(_: never): A; /** * A constant function that always return A */ export declare function constant(a: A): Lazy; /** * A thunk that returns always `false` */ export declare function constFalse(): boolean; /** * A thunk that returns always `null` */ export declare function constNull(): null; /** * A thunk that returns always `true` */ export declare function constTrue(): boolean; /** * A thunk that returns always `undefined` */ export declare function constUndefined(): undefined; /** * A thunk that returns always `void` */ export declare function constVoid(): void; /** * Flips the order of the arguments of a function of two arguments. */ export declare function flip(f: (a: A, b: B) => C): (b: B, a: A) => C; /** * Identity function * * @tsplus macro identity */ export declare function identity(a: A): A; /** * Force string to be literal * * @tsplus macro identity */ export declare function literal(k: K): K; /** * Type Hole, to be used while implementing functions where you need a placeholder */ export declare function hole(): T; export * from "@tsplus/stdlib/data/Function/pipe"; //# sourceMappingURL=Function.d.ts.map