let rat_times_poly =
  let rec
    f = function
      a, p -> (* not (eq_rat (a, cons_rat (", "))) *)
              if is_null_poly (p)
                then null_poly ()
                else
                  let
                    (a1, p1) = inv_cons_poly (p)
                  in
                    cons_poly (mult_rat (a, a1), f (a, p1)) 
  in
    function
      a, p -> if eq_rat (a, cons_rat ("0""1"))
                then null_poly ()
                else f (a, p)