let iter_stop (apply: 'data -> unit) (stop: 'data -> bool) (stack: 'data stack) : unit =
try
for i = 0 to stack.size - 1 do
if stop stack.stack.(i) then
raise Exit
else
apply stack.stack.(i)
done
with
| Exit ->
()