/** * wrapIO a value in the IO monad */ export declare const wrapIO: (a: A) => IO; /** * safeIO accepts a function that has side effects and wrapIOs it in an IO Monad. */ export declare const safeIO: (f: () => A) => IO; export declare const pure: (a: A) => IO; export declare const suspend: (f: () => A) => IO; /** * IO monadic type for containing interactions with the 'real world'. */ export declare class IO { private effect; constructor(effect: () => A); static safeIO: (f: () => A) => IO; static pure: (a: A) => IO; static suspend: (f: () => A) => IO; static chain: (f: (a: A) => IO) => (m: IO) => IO; of(v: A): IO; map(f: (a: A) => B): IO; mapIn(b: B): IO; /** * chain */ chain(f: (a: A) => IO): IO; chainIn(b: B): IO; /** * run */ run(): A; }