:param list(SyntheticMember) syntheticMemberList: a list of the class' synthetic members.

def makeNotEqualFunction(self, originalNotEqualFunction, syntheticMemberList):
        """
        :param list(SyntheticMember) syntheticMemberList: a list of the class' synthetic members.
        """

        def not_equal(instance, other):
            if instance.__class__ is not other.__class__:
                return NotImplemented

            for m in syntheticMemberList:
                if getattr(instance, m.privateMemberName()) != getattr(other, m.privateMemberName()):
                    return True

            if inspect.isfunction(originalNotEqualFunction) or inspect.ismethod(originalNotEqualFunction):
                return originalNotEqualFunction(instance, other)

            return False

        return not_equal