code: def _generate_union_class_m(self, union):
          
          self.emit()
          self._generate_imports_m(
              self._get_imports_m(
                  union,
                  default_imports=['DBStoneSerializers', 'DBStoneValidators']))
  
          union_name = fmt_class_prefix(union)
  
          self.emit('#pragma mark - API Object')
          self.emit()
          with self.block_m(fmt_class_prefix(union)):
              self._generate_synthesize_ivars(union)
              self.emit('#pragma mark - Constructors')
              self.emit()
              self._generate_union_cstor_funcs(union)
              self.emit('#pragma mark - Instance field accessors')
              self.emit()
              self._generate_union_tag_vars_funcs(union)
              self.emit('#pragma mark - Tag state methods')
              self.emit()
              self._generate_union_tag_state_funcs(union)
              self.emit('#pragma mark - Serialization methods')
              self.emit()
              self._generate_serializable_funcs(union_name)
              self.emit('#pragma mark - Description method')
              self.emit()
              self._generate_description_func(union_name)
              self.emit('#pragma mark - Copyable method')
              self.emit()
              self._generate_copyable_func()
              self.emit('#pragma mark - Hash method')
              self.emit()
              self._generate_hash_func(union)
              self.emit('#pragma mark - Equality method')
              self.emit()
              self._generate_equality_func(union)
  
          self.emit()
          self.emit()
  
          self.emit('#pragma mark - Serializer Object')
          self.emit()
          with self.block_m(fmt_serial_class(union_name)):
              self._generate_union_serializer(union)
              self._generate_union_deserializer(union)
docs: Defines an Obj C implementation file that represents a union in Stone.