https://issues.dlang.org/show_bug.cgi?id=11466
--- Comment #4 from hst...@quickfur.ath.cx --- Zip.empty and Zip.popFront call enforce, which is not nothrow. This can't be eliminated because the runtime length of the ranges passed to zip() is not known, and zip() will throw an exception if unequal-length ranges are passed to it. I don't know how to resolve this, since the only way to make Zip nothrow is to change enforce to assert, but that means you'll get array bounds violations at runtime if the input arguments have unequal lengths. --