///
import types = require('./types')
import subscribe = require('./subscribe')
import reactivity = require('reactivity')
/*
*/
function run( f: types.Func, args:any[], cb: types.RunCallback ): void {
function block():T{return f.apply( null, args )} ;
subscribe( block, ( e:Error, r?:T, m?:reactivity.Monitor, c?:boolean, s?: () => void ) => {
s() // stop
cb( e, r, m, c )
})
}
export = run