Updated: replace control flow by folding arguments with op +