def add_marshaller(self, marshallers):
        """ Add a marshaller/s to the user provided list.

        Adds a marshaller or a list of them to the user provided set of
        marshallers.

        Note that the builtin marshallers take priority when choosing
        the right marshaller.

        .. versionchanged:: 0.2
           All marshallers must now inherit from
           ``hdf5storage.Marshallers.TypeMarshaller``.

        .. versionchanged:: 0.2
           Builtin marshallers take priority over user provided ones.

        Parameters
        ----------
        marshallers : marshaller or iterable of marshallers
            The user marshaller/s to add to the user provided
            collection. Must inherit from
            ``hdf5storage.Marshallers.TypeMarshaller``.

        Raises
        ------
        TypeError
            If one of `marshallers` is the wrong type.

        See Also
        --------
        hdf5storage.Marshallers.TypeMarshaller

        """
        if not isinstance(marshallers, collections.Iterable):
            marshallers = [marshallers]
        for m in marshallers:
            if not isinstance(m, Marshallers.TypeMarshaller):
                raise TypeError('Each marshaller must inherit from '
                                'hdf5storage.Marshallers.'
                                'TypeMarshaller.')
            if m not in self._user_marshallers:
                self._user_marshallers.append(m)
        self._update_marshallers()