Another idea: Currently the protection labels, like public, private etc. , can be restored. But other modifier, like const, nothrow, @safe or, in this case, final can't. I suggest to change this. We could use default for that purpose. Default could interrupt all modifier labels and would restore the default behaviour.