object IDuplicable.Duplicate(RubyContext/*!*/ context, bool copySingletonMembers) {
if (IsSingletonClass) {
throw RubyExceptions.CreateTypeError("can't copy singleton class");
}
if (IsBasicObjectClass) {
throw RubyExceptions.CreateTypeError("can't copy the root class");
}
using (Context.ClassHierarchyLocker()) {
RubyClass result = Duplicate(null);
result._isUninitializedCopy = true;
return result;
}
}