pub trait TupleExt { type Head; type Tail; // Required methods fn head(self) -> Self::Head; fn tail(self) -> Self::Tail; }