import { Monad } from "./monad"; export default class Identity implements Monad { private val; constructor(val: A); static of(a: A): Identity; of(a: A): Identity; ap(f: Identity<(a: A) => B>): Identity; extract(): A; map(f: (a: A) => B): Identity; mapTo(b: B): Identity; flatten(): Identity; chain(f: (a: A) => Identity): Identity; multi: boolean; static multi: boolean; lift: (f: Function, ...ms: any[]) => Identity; }