pub fn detect_cycles( graph: &Graph, fragments: &[Fragment], level: QuotientLevel, root: Option<&str>, edge_types: Option<&FxHashSet<EdgeCategory>>, ) -> Vec<Vec<Arc<str>>>