def __i(self, other, func):
if isinstance(other, type(self)):<EOL><INDENT>other = tuple(other)<EOL><DEDENT>elif isinstance(other, self.__contenttype__):<EOL><INDENT>other = (other, )<EOL><DEDENT>for melt in list(other):<EOL><INDENT>if not isinstance(melt, self.__contenttype__):<EOL><INDENT>raise TypeError('<STR_LIT>'.format(melt))<EOL><DEDENT>else:<EOL><INDENT>func(melt)<EOL><DEDENT><DEDENT>return self<EOL>
Process input other with input func.

        :param ModelElement(s) other: other ModelElement(s) to process.
        :param func: function to apply on a ModelElement.
        :return: self.
        :raise: TypeError if other is not a ModelElement(s).