'For convenience if reduction is not possible, return None.'

def __new__(cls, ai, bj):

    ai = sympify(ai)
    bj = sympify(bj)
    n = (ai - bj)
    if ((not n.is_Integer) or (n < 0)):
        return None
    if (bj.is_integer and (bj <= 0)):
        return None
    expr = Operator.__new__(cls)
    p = S(1)
    for k in range(n):
        p *= (((_x + bj) + k) / (bj + k))
    expr._poly = Poly(p, _x)
    expr._a = ai
    expr._b = bj
    return expr
