pub trait Split { type Left; type Right; // Required method fn split(self) -> (Self::Left, Self::Right); }