Updating objects is primarily useful when an object has been
  serialized (e.g., stored to disk) for some time (e.g., months), and the
  class definition has in the mean time changed. Because of the changed
  class definition, the serialized instance is no longer valid.  updateObject requires that the class of the returned object be
  the same as the class of the argument object, and that the
  object is valid (see validObject). By default,
  updateObject has the following behaviors:
  
    - updateObject(ANY, ..., verbose=FALSE)
- 
      By default, updateObjectuses heuristic methods to determine
      whether the object should be the `new' S4 type (introduced in R 2.4.0),
      but is not. If the heuristics indicate an update is required,
      theupdateObjectFromSlotsfunction tries to update the
      object. The default method returns the original S4 object or the
      successfully updated object, or issues an error if an update is
      required but not possible.
      The optional named argumentverbosecauses a message to be
      printed describing the action.
      Arguments...are passed toupdateObjectFromSlots.
    
updateObject(list, ..., verbose=FALSE)
      Visit each element in list, applying
      updateObject(list[[elt]], ..., verbose=verbose).
        
updateObject(environment, ..., verbose=FALSE)
      Visit each element in environment, applying
      updateObject(environment[[elt]], ..., verbose=verbose)
        
updateObject(formula, ..., verbose=FALSE)
      Do nothing; the environment of the formula may be too general
      (e.g., R_GlobalEnv) to attempt an update.
        
updateObject(envRefClass, ..., verbose=FALSE)
      Attempt to update objects from fields using a strategy like
      updateObjectFromSlots Method 1.
      
  updateObjectFromSlots(object, objclass=class(object), ...,
  verbose=FALSE) is a utility function that identifies the intersection
  of slots defined in the object instance and objclass
  definition. Under Method 1, the corresponding elements in
  object are then updated (with updateObject(elt, ...,
  verbose=verbose)) and used as arguments to a call to new(class,
  ...), with ... replaced by slots from the original
  object. If this fails, then Method 2 tries new(class) and
  assigns slots of object to the newly created instance.
  getObjectSlots(object) extracts the slot names and contents from
  object. This is useful when object was created by a class
  definition that is no longer current, and hence the contents of
  object cannot be determined by accessing known slots.