What are the indices these two foreach loops will iterate over:
struct Section{}
Section[] sections;
// assuming we have 10 sections
foreach(ref s; sections[0..$/2+1]) {
// do something
}
foreach_reverse(ref s; sections[$/2..$])
{
// do something
}