import { Alt } from '../control/alt'; import { Eq } from '../data/eq'; import { Applicative } from '../control/applicative'; import { Monad } from '../control/monad'; /** * Identity monad. * * This class is here mostly for future iterations of this libary. * The Identity class typically returns the value supplied for most of its * operations. */ export declare class Identity implements Alt, Applicative, Monad, Eq> { value: A; constructor(value: A); /** * of */ of(a: A): Identity; /** * map */ map(f: (a: A) => B): Identity; /** * chain */ chain(f: (a: A) => Identity): Identity; /** * ap */ ap(i: Identity<(a: A) => B>): Identity; /** * alt will prefer whatever Maybe instance provided. */ alt(a: Identity): Identity; /** * eq */ eq(i: Identity): boolean; } /** * pure wraps a value in an Identity. */ export declare const pure: (value: A) => Identity;