pub trait Split3<A, B, C>: Sized + Iterator { fn split3(self) -> (Vec<A, Global>, Vec<B, Global>, Vec<C, Global>); }