Jeremie Pelletier wrote: > struct NonNull(C) if(is(C == class)) { > C ref; > invariant() { assert(ref !is null); } > T opDot() { return ref; } > } This only catches null errors at runtime. The whole point of a non-null type is to catch null errors at compile time. -- Rainer Deyke - rainerd at eldwood.com