This file implements power products with infinitely many variables and a data structure for monoid rings. It is tested in test/poly/istruc.as.nw.
Informally speaking, this file implements 2 domains that behave like polynomials. Whereas SparseAdditiveArray can be thought of as a polynomial domain that lacks multiplication, the domain SparseFiniteMonoidRing also implements multiplication as well. We decided for two domains since there are cases where the multiplicative structure is not needed. For example, one can use SparseAdditiveArray for the implementation of an additive monoid of exponent vectors of infinitely many variables where addition is done componentwise.