I wonder if it would be a good idea to have logging or debug prints
that simply lie about being pure so you can use them there.
Something like this:
==
extern(C) pure void puts(const char*);
pure void hello() {
puts("hello world from pure land\n"); // compiles
}
==