BTW I'm now doing a whole module based on @disable this() that includes cool stuff like bounded int/float values (including runtime overflow checks, if needed). Actually I wrote much of this over a year ago too, but now starting to organize it. The disabled default constructor is pretty nice for a lot of things.