Is there a higher-order range pattern that concatenate two InputRanges? Something like foreach (e; a) { // do stuff with e } foreach (e; b) { // do stuff with e } ... should instead be written as foreach (e; someMagic(a, b, ...)) { // do stuff with e }