An “engine” is a collection of types (fields, elliptic curve groups, etc.)
with well-defined relationships. In particular, the G1/G2 curve groups are
of prime order r, and are equipped with a bilinear pairing function.
This trait represents a wrapper around a biginteger which can encode any element of a particular
prime field. It is a smart wrapper around a sequence of u64 limbs, least-significant digit
first.
An “engine” is a collection of types (fields, elliptic curve groups, etc.)
with well-defined relationships. Specific relationships (for example, a
pairing-friendly curve) can be defined in a subtrait.