I still like to move loop here and explicitly pass loop vars into  accumulate(foo[i], bar[i]...)