https://issues.dlang.org/show_bug.cgi?id=14062 --- Comment #2 from sinkuupump at gmail.com --- Ah, constructor can avoid calling fptr(OpId.destruct) because fpr==&handler!void there, so it can be pure. But destructor is still impure. Any ideas? --