Related to:
https://issues.dlang.org/show_bug.cgi?id=11934
"each" implementation iterate thru ranges using:
foreach(ref x; range) { }
If range hasn't a ref front() this code should throw a compile error (IMO) but it doesn't.
The worst part is that if x is a struct, ctor is called but dtor is never called.
In my case if I iterate just a single node of a tree, node dtor is never called, resources are not freed and in turn the whole tree is never freed (huge memory leak).