: with-datastack ( stack quot -- new-stack ) [ [ [ datastack ] dip swap [ { } like set-datastack ] dip ] dip swap [ call datastack ] dip swap [ set-datastack ] dip ] (( stack quot -- new-stack )) call-effect-unsafe ;