pub trait Cross<T = Self> { type Output; // Required method fn cross(self, other: T) -> Self::Output; }