pub trait Field: Sized + Clone + Copy + Default + PartialEq + Eq + Debug + Display {
const ZERO: Self;
const ONE: Self;
fn is_zero(&self) -> bool;
fn wrapping_add(self, other: Self) -> Self;
fn wrapping_sub(self, other: Self) -> Self;
fn wrapping_mul(self, other: Self) -> Self;
fn wrapping_neg(self) -> Self;
fn square(self) -> Self;
fn double(self) -> Self;
fn checked_inv(self) -> Option<Self>;
fn frobenius_map(self, power: usize) -> Self;
fn wrapping_div(self, other: Self) -> Self { ... }
fn pow<S: BitIterBE>(self, exp: S) -> Self { ... }
}