shouldn't this throw a DivideByZeroError if m == 0?

The return type should probably match that of the general case below if n == 0 `(Poly(R[]), Poly(R[]))`