pub trait ApplyTo<T> { type Output; // Required method fn apply_to(&self, other: T) -> Self::Output; }