fn compute_transitive_hazards( name: &str, direct: &HashMap<String, Hazards>, graph: &HashMap<String, Vec<String>>, memo: &mut HashMap<String, Hazards>, visiting: &mut HashSet<String>, ) -> Hazards