Fixes #2525, #1187, #1208, #1758, and many more -- allow looping over an array downwards