$}4      !"#$%&'()*+,-./0123  Safe-Inferred 456789:;<48;<456789:;< Safe-Inferred #Create an arc between two vertices.=Remove types from arcs. Direct successors of a vertex.  Direct predecessors of a vertex. &Is first vertex a successor of second?(Is first vertex a predecessor of second?)>?@ABCDEF =G HI JKLMNOPQRS)>?@ABCDEF =G HI JKLMNOPQRS>?@ABCDEF =G HI JKLMNOPQRS Safe-InferredAConvert Graph to String with functions to show vertices and arcs.;Invoke Graphviz and Imagemagick to display graph on screen.TUVTUV Safe-InferredyIs first vertex a (recursive) parent of second vertex? May fail when one of the vertices is unreachable from the root.The  of an .NGet list of vertices in the order they were visited by the depth-first search.SGet list of vertices in the order they were last visited by the depth-first search.8Walk graph in depth-first order and number the vertices.#WXYZ[\]^_`abcdefghijklmn WXYZ[\]^_`abcdefghijklmn Safe-Inferred!1Vertices dominating the vertex given as argument."jCompute dominator sets. N.B. currently a naive algorithm is implemented with time-complexity O(vertex^2). opq!"rs !" opq!"rs Safe-Inferred(#Entry vertices of reducible cycles.3tuvwxyz{|}~#$%&'(t#$%&'( t uvwxyz{|}~#&%$'( Safe-Inferred)*+)*+)*+  Safe-Inferred,-./0123,-./0123,0/.-123 Safe-Inferred4  !"#$%&'()*+,-./01234  "!#&%$'()213,0/.-+*      !"#$%&'()*+,-+./012 3 4 5 6 7 8 9 :;;<=>?@ABCDDEFGHHIJKLMNOPQRSTUVWXYZ[[\]^_`abcc"defghijklmno(gpqrssgtuvwxyz{|}~ libgraph-1.6Data.Graph.LibgraphData.Graph.Libgraph.UnionFindData.Graph.Libgraph.CoreData.Graph.Libgraph.DotData.Graph.Libgraph.DepthFirstData.Graph.Libgraph.DominanceData.Graph.Libgraph.CyclesData.Graph.Libgraph.DagifyData.Graph.Libgraph.AlgoDebugGraphrootverticesarcsArcsourcetargetarc-->succspredsisSuccisPredmapGraphmapArcs treeDepthshowWithescapedisplayEdgeType CrossEdgeFwdEdgeBackEdgeTreeEdgeDfs isAncestor getEdgetype getPreorder getPostordergetDfsDomsets getDominators getDomsets CycleTree Irreducible Reducible getCycles getRedHeadersdagifyremovecollapse JudgementAssisted UnassessedWrongRightfindFaulty_dag findFaulty next_stepUFpsimfromList singletonpointfindunion simpleGraph SimpleGraphroot' vertices'arcs' SimpleArcsource'target' unitGraph succCache insertConmapArcsVmapArcVmapArc filterArcnothingIsFalselookup'fstElemupdatesndListfstList showVertexshowArcvNameDfsStategraph' spanning'stackseentimenum' lastVisit'Succsnum lastVisitspanninggraphvisit addToSpanning pushSuccspopvisitedAllChildrensee$fShowEdgeType $fShowDfssetsdom $fShowDomsets CycleNest getVertexndfs backPreds nonBackPreds vertexTypeheaderbodyworklistuf VertexType IrredHeadRedHeadSelfHeadNonHeadS cycleTreesimplifychildren isRedHeadstate0 isAncestor' getCycleNestanalyselabelReducibleworkmergemerge'analyseBackPreds!!!chasechase'dfsGraphmodifyVertexTypeaddToNonBackPredsOf addToBodyaddWorkuf_finduf_union showVType showHeader$fShowCycleNestrewire