v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu     T  Merge the  into the  . Minimum implementation:  , , , ,   An empty  . True if the given   is empty.  Decompose a   into the " found for the given node and the  remaining  .  Create a   from the list of %s and "s. A list of all % s in the  . Decompose a graph into the  for an arbitrarily-chosen &  and the remaining  . The number of &s in a  . The minimum and maximum & in a  . A list of all " s in the  . Unlabeled decomposition. Unlabeled context.  The same as , only more sure of itself.  , decomposition - the context removed from a  , and the rest  of the  .  Links to the &, the &! itself, a label, links from the &. Labeled links to or from a &. Quasi-unlabeled path  Labeled path  Unlabeled path !Quasi-unlabeled edge " Labeled edge #Unlabeled edge $Quasi-unlabeled node % Labeled node &Unlabeled node ' Fold a function over the graph. (Map a function over the graph. )Map a function over the & labels in a graph. *Map a function over the # labels in a graph. + List all & s in the  . , List all # s in the  . -List N available &s, i.e. &s that are not used in the  . .v if the & is present in the  . / Insert a % into the  . 0 Insert a " into the  . 1 Remove a & from the  . 2 Remove an # from the  . 3 Remove an " from the  . 4Insert multiple % s into the  . 5Insert multiple " s into the  . 6Remove multiple & s from the  . 7Remove multiple # s from the  . 8Build a   from a list of s. 9Build a quasi-unlabeled  . :Find the context for the given &. Causes an error if the & is  not present in the  . ;Find the label for a &. <Find the neighbors for a &. = Find all &"s that have a link from the given &. > Find all &s that link to to the given &. ? Find all &!s that are linked from the given & and the label of  each link. @ Find all &s that link to the given & and the label of each link. AFind all outward-bound "s for the given &. BFind all inward-bound "s for the given &. C The outward-bound degree of the &. DThe inward-bound degree of the &. EThe degree of the &. FThe & in a . GThe label in a . HThe % from a . IAll &s linked to or from in a . JAll &s linked to in a . KAll &s linked from in a . LAll &s linked from in a , and the label of the links. MAll &s linked from in a , and the label of the links. NAll outward-directed "s in a . OAll inward-directed "s in a . PThe outward degree of a . QThe inward degree of a . RThe degree of a . wxyzS{|}~J  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSJ&%$#"!   '()*+,-./0123456789:;<=>?@ABCDESFGHIJKMLNOPQRJ    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS T$Reverse the direction of all edges. UBMake the graph undirected, i.e. for every edge from A to B, there  exists an edge from B to A. VRemove all labels. W Return all 's for which the given function returns v. XFilter based on edge property. Y%Filter based on edge label property. Zv0 if the graph has any edges of the form (A, A). [The inverse of Z. \Directed graph fold. direction of fold depth aggregation breadth/level aggregation ] Flatten a (, returning the elements in post-order. ^Flatten multiple s in post-order. _ Flatten a 6, returning the elements in pre-order. Equivalent to  in  Data.Tree. `Flatten multiple s in pre-order. TUVWXYZ[\]^_` TUVW\XYZ[]^_` TUVWXYZ[\]^_`abcdefghijk graph fold lmnopqrsabcdefghijklmnopqrsabcdefghijklmnopqrsa bcdefghijbcdefghijklmnopqrs tuvwxyz{filter list (of successors/)predecessors) through a boolean ST array  representing deleted marks tuvwxyz{wxvutyz{tuvwxxyz{ |}~%Formats a graph for use in graphviz. The graph to format The title of the graph  The size  of the page The width and  height of the page  grid The orientation of  the graph. ?Format a graph for graphviz with reasonable defaults: title of "fgl", / 8.5x11 pages, one page, landscape orientation |}~|~}|~}}~  @Finds the articulation points for a connected undirected graph, & by using the low numbers criteria: Ka) The root node is an articulation point iff it has two or more children. Ib) An non-root node v is an articulation point iff there exists at least ? one child w of v such that lowNumber(w) >= dfsNumber(v).  DFinds the bi-connected components of an undirected connected graph. MIt first finds the articulation points of the graph. Then it disconnects the Hgraph on each articulation point and computes the connected components.  Creturn immediate dominators for each node of a graph, given a root Creturn the set of dominators of the nodes of a graph, given a root  2Finds the transitive closure of a directed graph. <Given a graph G=(V,E), its transitive closure is the graph: LG* = (V,E*) where E*={(i,j): i,j in V and there is a path from i to j in G} #1encapsulates a simple recursion schema on graphs 3Monadic graph algorithms are defined in two steps: E define the (possibly parameterized) graph transformer (e.g., dfsGT) D (2) run the graph transformer (applied to arguments) (e.g., dfsM) ,depth-first search yielding number of nodes 'depth-first search yielding dfs forest ###>Find the first path in a tree that starts with the given node    5 i 0 : For each edge a--->b this function returns edge b--->a .  i  Edges a<--->b are ignored  j   6 i 0 2 For each edge a--->b insert into graph the edge a<---b . Then change the . i (i,0,i) 0 label of every edge from a---->b to a------->b Dwhere label (x,y,z)=(Max Capacity, Current flow, Residual capacity) HGiven a successor or predecessor list for node u and given node v, find H the label corresponding to edge (u,v) and update the flow and residual  capacity of that edge''s label. Then return the updated list. GUpdate flow and residual capacity along augmenting path from s to t in  graph G. For a path [u,v,w,...], find the node u in G and its successor and J predecessor list, then update the corresponding edges (u,v) and (v,u) on A those lists by using the minimum residual capacity of the path. ECompute the flow from s to t on a graph whose edges are labeled with E (x,y,z)=(max capacity,current flow,residual capacity) and all edges  are of the form a<3---->b. First compute the residual graph, that is, F delete those edges whose residual capacity is zero. Then compute the G shortest augmenting path from s to t, and finally update the flow and D residual capacity along that path by using the minimum capacity of J that path. Repeat this process until no shortest path from s to t exist. ECompute the flow from s to t on a graph whose edges are labeled with H x, which is the max capacity and where not all edges need to be of the  form a<?---->b. Return the flow as a grap whose edges are labeled with E (x,y,z)=(max capacity,current flow,residual capacity) and all edges  are of the form a<---->b HCompute the maximum flow from s to t on a graph whose edges are labeled I with x, which is the max capacity and where not all edges need to be of  the form a<?---->b. Return the flow as a grap whose edges are labeled with ' (y,x) = (current flow, max capacity). #Compute the value of a maximumflow Implementation of Dijkstra's shortest path algorithm   !applies function to stored entry  defines or aggregates entries   applies lookup to an interval combines delFrom and lookup combines splitFM and minFM                +3Graph construction monad; handles passing both the  and the   . Create a new, empty mapping. <Generate a mapping containing the nodes in the given graph. JGenerate a labelled node from the given label. Will return the same node  for the same label.  5Generate a labelled node and throw away the modified . ! Generate a " from the node labels. "Generates a list of "s. #Construct a list of nodes. $6Construct a list of nodes and throw away the modified . %&'()*+,-./0FRun a construction; return the value of the computation, the modified  , and the modified  . 1'Run a construction and only return the  . 2Monadic node construction. 3456789:;<=# !"#$%&'()*+,-./0123456789:;<=# #$!"%&'()*+,-./0123456789:;<=# !"#$%&'()*+,-./0123456789:;<=>?@A>?@A>@?A>?@Aj>?@AB Version info   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABBB3C!generate list of unlabeled nodes Dgenerate list of labeled nodes Edenote unlabeled edges Fempty (unlabeled) edge list GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu3CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu3CDEFGHIJLMNPKOTUQRSVWXY[\]^Z_`abcdefhgijklmnoqprstu3CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ D+  ,   D !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                 2    fgl-5.4.2.3$Data.Graph.Inductive.Internal.ThreadData.Graph.Inductive.GraphData.Graph.Inductive.BasicData.Graph.Inductive.Monad"Data.Graph.Inductive.Monad.IOArrayData.Graph.Inductive.Graphviz!Data.Graph.Inductive.PatriciaTreeData.Graph.Inductive.Query.DFS Data.Graph.Inductive.Query.Indep#Data.Graph.Inductive.Query.ArtPointData.Graph.Inductive.Query.BCC%Data.Graph.Inductive.Query.Dominators$Data.Graph.Inductive.Query.TransClos Data.Graph.Inductive.Query.Monad&Data.Graph.Inductive.Internal.RootPath#Data.Graph.Inductive.Internal.QueueData.Graph.Inductive.Query.BFS"Data.Graph.Inductive.Query.MaxFlow"Data.Graph.Inductive.Internal.HeapData.Graph.Inductive.Query.SPData.Graph.Inductive.Query.GVDData.Graph.Inductive.Query.MST'Data.Graph.Inductive.Internal.FiniteMapData.Graph.Inductive.TreeData.Graph.Inductive.NodeMap#Data.Graph.Inductive.Query.MaxFlow2Data.Graph.InductiveData.Graph.Inductive.ExampleData.Graph.Inductive.QuerySplitMCollectThreadSplit threadList' threadList threadMaybe' threadMaybesplitPar splitParMDynGraph&GraphemptyisEmptymatchmkGraphlabNodesmatchAnynoNodes nodeRangelabEdgesUDecompUContextGDecompDecompMContextContextAdjUPathLPathLPPathUEdgeLEdgeEdgeUNodeLNodeNodeufoldgmapnmapemapnodesedgesnewNodesgeleminsNodeinsEdgedelNodedelEdgedelLEdgeinsNodesinsEdgesdelNodesdelEdgesbuildGrmkUGraphcontextlab neighborssucprelsuclpreoutinnoutdegindegdegnode'lab'labNode' neighbors'suc'pre'lsuc'lpre'out'inn'outdeg'indeg'deg'equalgrevundirunlabgselefilterelfilterhasLoopisSimplegfold postorder postorderFpreorder preorderFGraphMemptyMisEmptyMmatchMmkGraphM labNodesM matchAnyMnoNodesM nodeRangeM labEdgesMufoldMnodesMedgesM newNodesMdelNodeM delNodesM mkUGraphMcontextMlabMUSGrContext'GraphRepSGrdefaultGraphSizeemptyN removeDelOrient LandscapePortraitgraphviz graphviz'UGrGrCFunxdfsWithdfsWithdfsWith'dfsdfs'udfsudfs'rdfsrdfs'xdfWithxdffWithdffWithdffWith'dffdff'udffudff'rdffrdff' components noComponents isConnectedtopsorttopsort'scc reachableindepapbcciDomdomtrcGTMGTmapFstmapSnd><orPapplyapply' applyWith applyWith'runGTcondMGT'recMGT'condMGTrecMGTgetNode getContext getNodes'getNodessucGTsucMgraphRec graphRec' graphUFold graphNodesM0 graphNodesM graphNodes graphFilterM graphFilterdfsGTdfsMdfsM'dffMgraphDff graphDff'RTreeLRTreegetPathgetLPath getDistance getLPathNodesQueueMkQueuemkQueuequeuePut queuePutListqueueGet queueEmptybfsnWithbfsnbfsWithbfslevellevelnbfenbfebftesplbftlesp getRevEdges augmentGraph updAdjList updateFlowmfmgmf maxFlowgraphmaxFlowHeapEmptyunitinsertmergemergeAllfindMin deleteMinsplitMinbuildtoListheapsortdijkstraspTreespLengthspVoronoigvdIngvdOut voronoiSet nearestNode nearestDist nearestPathmsTreeAtmsTreemsPath FiniteMapemptyFMaddToFMupdFMaccumFM delFromFM isEmptyFMsizeFMlookupFMrangeFMminFMmaxFMpredFMsuccFMelemFMsplitFM splitMinFMfmToListNodeMapMNodeMapnew fromGraphmkNodemkNode_mkEdgemkEdgesmkNodesmkNodes_ insMapNode insMapNode_ insMapEdge delMapNode delMapEdge insMapNodes insMapNodes_ insMapEdges delMapNodes delMapEdges mkMapGraphrunrun_mkNodeMmkNodesMmkEdgeMmkEdgesM insMapNodeM insMapEdgeM delMapNodeM delMapEdgeM insMapNodesM insMapEdgesM delMapNodesM delMapEdgesMNetworkekFusedekSimpleekListversion genUNodes genLNodes labUEdgesnoEdgesabcee3loopababbcyc3dag3dag4d1d3g3g3ba'b'c'e'e3'loop'ab'abb'dag3'dag4'd1'd3'ucyclestarucycleMstarMclr479clr486clr489clr508clr528clr595gr1kin248vorclr479'clr486'clr489'clr508'clr528'kin248'vor'ghc-primGHC.BoolTruenodeComp slabNodesedgeComp slabEdges.:flip2 context1l context4l context1l' context4l'containers-0.4.0.0 Data.TreeTreeflatten>>.onMatch showGrapho2si2dsqslmatchGr fastInsNode fastInsEdgefastGMapfastNMapfastEMaptoAdjfromAdj toContext fromContextswapaddListsaddSuccaddPred clearSucc clearPredfixNodes postflatten postflattenFfirstLOWTreeBrcDFSTreeB getBackEdgesdfsTree minbckEdgegetLowlowTree getLowTreeisaparp artpoints gComponents embedContexts findGraph splitGraphsFromNodeToNodePredsIDomNode'idomWork refineIDom intersectgetDom numberTree numberForest treeEdgesfixEq getNewEdgesfindP bfsnInternal bfenInternalbflbf showsHeapexpand maybePathnewEdgesprim joinPathsjoinAtshowsMapsplitMaxheightnode avlBalancebiasrotrrotl showsGraphupdAdjmapkeymap'liftN2liftN2'liftM1liftM1' EKStepFuncDirRTreeDirPathDirEdge DirectionBackwardForward augPathFusedbftForEKbfForEKextractPathFused residualGraphaugPath extractPath extractEdge extractAdj getPathDeltasintegrateDelta ekSimpleStepekWith setFromList setContainsextractPathList ekStepList