Why is std.algorithm.reduce not marked pure? It makes it impossible to do things like this: pure const int product(int[] args) { return reduce!"a * b"(args); } T -- Life is unfair. Ask too much from it, and it may decide you don't deserve what you have now either.