Loop backwards to avoid another edge case (better tests coming soon™)
Compile