pub trait PowOps: Sized { fn powi(&self, n: i32) -> Self; fn powf(&self, f: f64) -> Self; fn pow(&self, f: Self) -> Self; fn sqrt(&self) -> Self { ... } }