set default visit(RootObject* arg) to assert(0);