Hi
@altavir. It seems that your approach on polynom is fine. A polynom has to be distinguished to a polynomial function. These are two different objects. The former is composed of coefficients (a11, a12, a22, etc.) which are taken from a set such as a commutative ring, and of indeterminates (X, Y...). The second is basically a function, which takes arguments and returns a value.
Making the distinction between the two allows you to deal with much more complex polynoms, for example truncated polynom algebra, in example :
https://darioizzo.github.io/audi/theory_algebra.html
I have a bunch of applications with these....