there was no check that the coefficients were all numeric `isinstance(i, (SYMPY_INTS, Integer)) for i in (a, b, c, d)`, perhaps? Should Integer be Rational?