import etc.linux.memoryerror;
static if (is(typeof(registerMemoryErrorHandler)))
registerMemoryErrorHandler();
ForwardRange!(int)[] listOfRanges;
listOfRanges ~= iota(1).map!(a => a).inputRangeObject;
listOfRanges ~= iota(2).map!(a => a).inputRangeObject;
auto lazyFlattenedRange = joiner(listOfRanges);
auto d1 = lazyFlattenedRange
.chunkBy!(a => a).map!(a => a[0]).inputRangeObject;
writeln("Non Lazy Chunked Data length: ", d1.walkLength);
lazyFlattenedRange = joiner(listOfRanges);
auto d2 = lazyFlattenedRange
.chunkBy!(a => a).map!(a => a[0]).inputRangeObject;
writeln("Lazy Chunked Data length: ", d2.walkLength);