fn check_edge_kind(target: MuID, stack: &Vec<MuID>) -> EdgeKind {
    if stack.contains(&target) {
        EdgeKind::Backward
    } else {
        EdgeKind::Forward
    }
}
/// if an edge target already appears in the stack, it is a backedge, otherwise forward edge
if an edge target already appears in the stack, it is a backedge, otherwise forward edge
if an edge target already appears in the stack it is a backedge otherwise forward edge
fn check_edge_kind(target: MuID, stack: &Vec<MuID>) -> EdgeKind {
    if stack.contains(&target) {
        EdgeKind::Backward
    } else {
        EdgeKind::Forward
    }
}
fn check_edge_kind ( target : MuID , stack : & Vec < MuID > ) -> EdgeKind { if stack . contains ( & target ) { EdgeKind :: Backward } else { EdgeKind :: Forward } }
if an edge target already appears in the stack, it is a backedge, otherwise forward edge
if an edge target already appears in the stack it is a backedge otherwise forward edge
target
MuID
stack
&Vec<MuID>
target
MuID
stack
&Vec<MuID>