(I assume you meant ```virtual void ScopesGeneric *clone() = 0;```) This fails to compile, with an error complaining about "cannot allocate an object of abstract type because the following virtual functions are pure..."