def add_filter(left, right):
    """ Automatic add on MO

    :param left: MO
    :param right: MO
    :returns: MO if it is a special case, nothing other wise

    >>> a = MOnumber(0)
    >>> b = MOFraction(1, 2)
    >>> add(a, b)
    <MOFraction 1 / 2>
    >>> add(b, a)
    <MOFraction 1 / 2>
    """
    try:
        if left == 0:
            return right
    except TypeError:
        pass
    try:
        if right == 0:
            return left
    except TypeError:
        pass
    try:
        if left.variable != right.variable:
            raise NotImplementedError(
                "Can't add 2 polynomes with not same letter")
    except AttributeError:
        pass
