A crate providing explicit syntax for non-stdlib finite field types.
There are two parts to the crate's design:
Semantics: The types should facilitate direct expression of numeric types ranging over finite fields, so that the ideas expressed in the code are clear on their face.
Syntax: Syntax for working with the types should be transparent and universal
where reasonable. For example, Add for GF(2) should present the same
interface as Add for GF(4).
The implementations are not great, but they should work as a demonstration. The crate currently uses fixed-length arrays, with the idea that types be created by the programmer using macros. In other words, it stores the factored elements (the 'digits') of a number in the field as elements of a finite-length array.