module Graph.Inductive ( -- * Graph Gr , UGr -- * Static graphs , Graph(..) , mkUGraph , order , size , nodes , edges , context , lab , neighbors , lneighbors , suc , pre , lsuc , lpre , out , inn , outdeg , indeg , deg , hasNeighbor , hasNeighborAdj , hasEdge , hasLEdge , equal , gelem , gsel , gfold , ufold , hasLoop , isSimple , newNodes -- ** Articulation points , ap -- ** Breadth-first search , bfs , bfsn , bfsWith , bfsnWith , level , leveln , bfe , bfen , bft , lbft , esp , lesp -- ** Depth-first search , CFun , dfs , dfs' , dfsWith , dfsWith' , dff , dff' , dffWith , dffWith' , xdfsWith , xdfWith , xdffWith , udfs , udfs' , udff , udff' , udffWith , udffWith' , rdff , rdff' , rdfs' , rdffWith , rdffWith' , topsort , topsort' , scc , reachable , components , noComponents , isConnected , condensation -- ** Dominators , dom , iDom -- ** Voronoi diagrams , Voronoi , gvdIn , gvdOut , voronoiSet , nearestNode , nearestDist , nearestPath -- ** Independent node sets , indep , indepSize -- ** Minimum spanning trees , msTreeAt , msTree , msPath -- ** Max flow , getRevEdges , augmentGraph , updAdjList , updateFlow , mfmg , mf , maxFlowgraph , maxFlow , Network , ekSimple , ekFused , ekList -- ** Shortest path , Heap , spTree , sp , spLength , dijkstra -- * Dynamic graphs , DynGraph(..) , buildGr , insNode , insNodes , insEdge , insEdges , delNode , delNodes , delEdge , delEdges , delLEdge , delAllLEdge , gmap , nmap , emap , nemap , gfiltermap , nfilter , labnfilter , labfilter , subgraph , grev , undir , unlab , efilter , elfilter -- ** Bi-connected components , bcc -- ** Pretty-printing , prettify , prettyPrint -- ** Transitive/reflexive closure , trc , rc , tc -- * Misc. types -- ** Node , Node , LNode , UNode -- ** Edge , Edge , LEdge , UEdge , toEdge , edgeLabel , toLEdge -- ** Context , Context , MContext , UContext , node' , lab' , labNode' , neighbors' , lneighbors' , suc' , pre' , lpre' , lsuc' , out' , inn' , outdeg' , indeg' , deg' -- ** Decomposition , Decomp , GDecomp , UDecomp -- ** Path , Path , LPath(..) , UPath -- ** Tree , RTree , LRTree -- ** Adj , Adj -- ** OrdGr , OrdGr(..) ) where import Data.Graph.Inductive.Basic import Data.Graph.Inductive.Graph import Data.Graph.Inductive.PatriciaTree import Data.Graph.Inductive.Query -- TODO: -- DFS -- Dominators -- GVD -- Indep -- MST -- MaxFlow -- MaxFlow2 -- Monad -- SP -- TransClos