Instances1Outputable
Outputable node => Outputable (Graph node)Defined in ghc-9.10.3 · GHC.Data.Graph.Directed
:: a typeCtrl KGHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05
Moduleghc-9.10.3GHC2021
Outputable node => Outputable (Graph node)Defined in ghc-9.10.3 · GHC.Data.Graph.DirectedStrongly connected component.
AcyclicSCC vertexA single vertex that is not in any cycle.
NECyclicSCC !(NonEmpty vertex)A maximal set of mutually reachable vertices.
Functor SCCDefined in containers-0.7 · Data.GraphFoldable SCCDefined in containers-0.7 · Data.GraphTraversable SCCDefined in containers-0.7 · Data.GraphFoldable1 SCCDefined in containers-0.7 · Data.GraphEq1 SCCDefined in containers-0.7 · Data.GraphRead1 SCCDefined in containers-0.7 · Data.GraphShow1 SCCDefined in containers-0.7 · Data.GraphGeneric1 SCCDefined in containers-0.7 · Data.GraphLift vertex => Lift (SCC vertex)Defined in containers-0.7 · Data.GraphOutputableP env a => OutputableP env (SCC a)Defined in ghc-9.10.3 · GHC.Utils.OutputableEq vertex => Eq (SCC vertex)Defined in containers-0.7 · Data.GraphData vertex => Data (SCC vertex)Defined in containers-0.7 · Data.GraphRead vertex => Read (SCC vertex)Defined in containers-0.7 · Data.GraphShow vertex => Show (SCC vertex)Defined in containers-0.7 · Data.GraphGeneric (SCC vertex)Defined in containers-0.7 · Data.GraphNFData a => NFData (SCC a)Defined in containers-0.7 · Data.GraphOutputable a => Outputable (SCC a)Defined in ghc-9.10.3 · GHC.Utils.Outputabletype Rep (SCC vertex) = D1 ('MetaData "SCC"
"Data.Graph"
"containers-0.7-1cc3"
'False) (C1 ('MetaCons "AcyclicSCC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 vertex)) :+: C1 ('MetaCons "NECyclicSCC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 (NonEmpty vertex))))Defined in containers-0.7 · Data.Graphtype Rep1 SCC = D1 ('MetaData "SCC"
"Data.Graph"
"containers-0.7-1cc3"
'False) (C1 ('MetaCons "AcyclicSCC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1) :+: C1 ('MetaCons "NECyclicSCC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec1 NonEmpty)))Defined in containers-0.7 · Data.GraphPartial pattern synonym for backward compatibility with containers < 0.7.
Representation for nodes of the Graph.
The payload is user data, just carried around in this module
The key is the node identifier.
Key has an Ord instance for performance reasons.
The [key] are the dependencies of the node;
it's ok to have extra keys in the dependencies that
are not the key of any Node in the graph
DigraphNodenode_payload :: payloadUser data
node_key :: keyUser defined node id
node_dependencies :: [key]Dependencies/successors of the node
Functor (Node key)Defined in ghc-9.10.3 · GHC.Data.Graph.Directed(Outputable a, Outputable b) => Outputable (Node a b)Defined in ghc-9.10.3 · GHC.Data.Graph.DirectedThe vertices of a strongly connected component.
The vertices of a list of strongly connected components.
Given a list of roots return all reachable nodes.
Efficiently construct a map which maps each key to it's set of transitive dependencies. Only works on acyclic input.
Efficiently construct a map which maps each key to it's set of transitive
dependencies. Less efficient than allReachable, but works on cyclic input as well.
Find a reasonably short cycle a->b->c->a, in a graph The graph might not necessarily be strongly connected.
Edge direction based on DFS Classification
Given a start vertex, a way to get successors from a node and a list of (directed) edges classify the types of edges.