pub fn module_coupling(edges: &[(String, String)]) -> Vec<ModuleCoupling>Expand description
Compute per-module coupling from directed dependency edges
(dependent_module, dependency_module). Self-edges and duplicates are
ignored. Output is sorted by module name for determinism.