def need_paren_in_coeff?
      if constant?
        c = @coeff[0]
        if c.respond_to?(:need_paren_in_coeff?)
          c.need_paren_in_coeff?
        elsif c.is_a?(Numeric)
          false
        else
          true
        end
      elsif !monomial?
        true
      else
        false
      end
    end
def need_paren_in_coeff?
      if constant?
        c = @coeff[0]
        if c.respond_to?(:need_paren_in_coeff?)
          c.need_paren_in_coeff?
        elsif c.is_a?(Numeric)
          false
        else
          true
        end
      elsif !monomial?
        true
      else
        false
      end
    end
def cont; @coeff.first.gcd_all(* @coeff[1..-1]); end
  def pp; self / cont; end