module abstractfactory.thickcrustdough; import abstractfactory.dough; class ThinCrustDough : Dough { override string toString() const @safe pure nothrow { return "ThickCrust style extra thick crust dough"; } string opBinary(string op : "~")(string s) { return (cast(Object)this).toString() ~ s; } }