fn search_for_cycle_permutation<Q, T>( cycle: &[Q], try_cycle: impl Fn(&mut VecDeque<&Q>) -> ControlFlow<T, ()>, otherwise: impl FnOnce() -> T, ) -> T