use special datatype X instead of unit type to represent the variable in univariate polynomials