for para forces a loop parallel, for seq forces it in order; without either, the prover decides, and a loop that prints stays in order by itself.
for_para.zg
# `for para` forces a loop parallel, `for seq` forces it in order (owner, 2026-09-30); without either,# the prover decides, and a loop that prints stays in order by itself. The oracle runs every loop in order.MAIN{let'xs':list[int64]=[1,2,3,4];letmut'total':int64=0;for para'x'inlend'xs'{change'total'='total'plus'x';}for seq'x'inlend'xs'{std::print.stored['x'," "];}std::print.stored['total',newln];}