pub fn main_loop<T, I, G, W, const N: usize, const R: usize>( out: &mut W, ) -> Result<Vec<Vec<T>>, Error>where T: Hash + Clone, I: InitializerTrait<T, N>, G: GroupTrait<T, N, R>, W: Write,