use std::ops::Mul; pub trait Square { fn square(&self) -> Self; } impl + Copy> Square for F { default fn square(&self) -> Self { *self * *self } }