pub trait Split<L, R> { // Required methods fn split(self) -> (L, R); fn combine(left: L, right: R) -> Self; }