pub trait AsComplex {
type Real;
// Required method
fn as_complex(&self, real: bool) -> Complex<Self::Real>;
// Provided methods
fn as_re(&self) -> Complex<Self::Real> { ... }
fn as_im(&self) -> Complex<Self::Real> { ... }
}