Function.zipper = Function["prototype"]
Function.zipper['then'] = function(){var work,flop
let me = new Promise((send,suck) => {
work = send
flop = suck
});
me.then.apply(me, arguments)
return (...argue) => {try{return work(this(...argue))}catch(k){throw flop(k, argue)}}
}