An instance f of the data type Field_element is a field
element. A field element has a type and a representation,
the latter being hidden from the user. Every type of field element
has its own standard field operations such as +,*,== (boolean
equality check) etc. Additionally, operations are also allowed
between two field elements of different types for certain combinations
of field element types.