Common library for algebraic structures. Has the advantage of automatically inferring lots of useful structure, especially
in the writing of linear programs. For example, here are several ways of writing 3 x - 4 y + z:

In addition, if we have two functions f and g, we can construct linear combinations of those functions, using
exactly the same syntax. Moreover, we can multiply functions with Double coefficients by Rational values successfully.
This module is intended to offer as much generality as possible without getting in your way.