"1      !"#$%&'()*+,-./0  Safe-Inferred 1234567891589123456789None #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?&;<=>?@ABC :D EFGHIJKLMN&;<=>?@ABC :D EFGHIJKLMN;<=>?@ABC :D EFGHIJKLMNNoneAConvert Graph to String with functions to show vertices and arcs.;Invoke Graphviz and Imagemagick to display graph on screen.OPQOPQNoneyIs 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.#RSTUVWXYZ[\]^_`abcdefghi RSTUVWXYZ[\]^_`abcdefghiNone 1Vertices dominating the vertex given as argument.!jCompute dominator sets. N.B. currently a naive algorithm is implemented with time-complexity O(vertex^2).jkl !mn !jkl !mnNone'#Entry vertices of reducible cycles.3opqrstuvwxyz{|}~"#$%&'o"#$%&' o pqrstuvwxyz{|~}"%$#&'None()*()*()* None+,-./0+,-./0+.-,/0None1  !"#$%&'()*+,-./01 ! "%$#&'(0/+.-,*)      !"#$%&'()*+,*-./01 2 3 4 5 6 7889:;<=>?@AABCDEEFGHIJKLMNOPQRSTUVVWXYZ[\]^^!_`abcdefghij'bklmnnbopqrstuvwxyz{|}~ libgraph-1.4Data.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-->succspredsisSuccisPredmapGraphmapArcsshowWithescapedisplayEdgeType CrossEdgeFwdEdgeBackEdgeTreeEdgeDfs isAncestor getEdgetype getPreorder getPostordergetDfsDomsets getDominators getDomsets CycleTree Irreducible Reducible getCycles getRedHeadersdagifyremovecollapse Judgement UnassessedWrongRightfindFaulty_dag findFaultyUFpsimfromList singletonpointfindunion simpleGraph SimpleGraphroot' vertices'arcs' SimpleArcsource'target' unitGraphmapArcsVmapArcVmapArc 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