import { Disposable } from '@typed/disposable' import { curry } from '@typed/lambda' import { Pure } from './Env' import { runEnv } from './runEnv' /** * Runs a Pure Env with the given callback * @param f :: (a -> Disposable) Callback for pure Value * @param pure :: Pure Pure to run * @returns :: Disposable */ export const runPure: { (f: (value: A) => Disposable, pure: Pure): Disposable (f: (value: A) => Disposable): (pure: Pure) => Disposable } = curry(function runPure(f: (value: A) => Disposable, pure: Pure): Disposable { return runEnv(f, {}, pure) })