As a convenience, a partial instance of Fractional is defined for polynomials.
The instance is well-defined only for scalars, and gives an error if used on other values.
The purpose of this is to allow entry of fractional scalars, in expressions such as x/2.
On the other hand, an expression such as 2/x will return an error.

Trivial k is the field k considered as a k-vector space. In maths, we would not normally make a distinction here,
but in the code, we need this if we want to be able to put k as one side of a tensor product.