The alg_types struct provides a useful way to create an environment with all the algebra types with consistent settings. As libalgebra grows, the current naming scheme will not be sufficiently rich to distinguish numerous variations on types such as free_tensor. To combat this, we should introduce a rigorous prefix scheme to help distinguish algebra objects in this struct.
For shared types, such as basis, key, we should have a prefix to indicate the associated type: T for tensor, L for Lie, P for polynomial, PL for PolyLie, and MP for multipolynomial.
Further, for the algebra/vector types themselves, the prefix should denote the variation or alternative multiplication we should prefix the class by a letter indicating this variation: FTENSOR for free tensor, STENSOR for shuffle tensor, etc.
At the same time, perhaps we should reconsider the all-caps naming scheme here.
The alg_types struct provides a useful way to create an environment with all the algebra types with consistent settings. As libalgebra grows, the current naming scheme will not be sufficiently rich to distinguish numerous variations on types such as free_tensor. To combat this, we should introduce a rigorous prefix scheme to help distinguish algebra objects in this struct.
For shared types, such as basis, key, we should have a prefix to indicate the associated type: T for tensor, L for Lie, P for polynomial, PL for PolyLie, and MP for multipolynomial.
Further, for the algebra/vector types themselves, the prefix should denote the variation or alternative multiplication we should prefix the class by a letter indicating this variation: FTENSOR for free tensor, STENSOR for shuffle tensor, etc.
At the same time, perhaps we should reconsider the all-caps naming scheme here.