code: def save_global(self, obj, name=None, pack=struct.pack):
          
          if obj is type(None):
              return self.save_reduce(type, (None,), obj=obj)
          elif obj is type(Ellipsis):
              return self.save_reduce(type, (Ellipsis,), obj=obj)
          elif obj is type(NotImplemented):
              return self.save_reduce(type, (NotImplemented,), obj=obj)
  
          if obj.__module__ == "__main__":
              return self.save_dynamic_class(obj)
  
          try:
              return Pickler.save_global(self, obj, name=name)
          except Exception:
              if obj.__module__ == "__builtin__" or obj.__module__ == "builtins":
                  if obj in _BUILTIN_TYPE_NAMES:
                      return self.save_reduce(
                          _builtin_type, (_BUILTIN_TYPE_NAMES[obj],), obj=obj)
  
              typ = type(obj)
              if typ is not obj and isinstance(obj, (type, types.ClassType)):
                  return self.save_dynamic_class(obj)
  
              raise
docs: Save a "global".
  
          The name of this method is somewhat misleading: all types get
          dispatched here.