HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Modulegraphviz-2999.20.2.0Haskell2010

Data.GraphViz.Types.Generalised

The generalised Dot representation most closely matches the implementation of actual Dot code, as it places no restrictions on ordering of elements, etc. As such it should be able to parse any existing Dot code (taking into account the parsing limitations/assumptions).

The sample graph could be implemented (this is actually a prettied version of parsing in the Dot code) as:

DotGraph { strictGraph = False
         , directedGraph = True
         , graphID = Just (Str "G")
         , graphStatements = Seq.fromList [ SG $ DotSG { isCluster = True
                                                       , subGraphID = Just (Int 0)
                                                       , subGraphStmts = Seq.fromList [ GA $ GraphAttrs [style filled]
                                                                                      , GA $ GraphAttrs [color LightGray]
                                                                                      , GA $ NodeAttrs [style filled, color White]
                                                                                      , DE $ DotEdge "a0" "a1" []
                                                                                      , DE $ DotEdge "a1" "a2" []
                                                                                      , DE $ DotEdge "a2" "a3" []
                                                                                      , GA $ GraphAttrs [textLabel "process #1"]]}
                                          , SG $ DotSG { isCluster = True
                                                       , subGraphID = Just (Int 1)
                                                       , subGraphStmts = fromList [ GA $ NodeAttrs [style filled]
                                                                                  , DE $ DotEdge "b0" "b1" []
                                                                                  , DE $ DotEdge "b1" "b2" []
                                                                                  , DE $ DotEdge "b2" "b3" []
                                                                                  , GA $ GraphAttrs [textLabel "process #2"]
                                                                                  , GA $ GraphAttrs [color Blue]]}
                                          , DE $ DotEdge "start" "a0" []
                                          , DE $ DotEdge "start" "b0" []
                                          , DE $ DotEdge "a1" "b3" []
                                          , DE $ DotEdge "b2" "a3" []
                                          , DE $ DotEdge "a3" "a0" []
                                          , DE $ DotEdge "a3" "end" []
                                          , DE $ DotEdge "b3" "end" []
                                          , DN $ DotNode "start" [shape MDiamond]
                                          , DN $ DotNode "end" [shape MSquare]]}
  • 8 types
  • 1 class
datadata DotGraph n
#

The internal representation of a generalised graph in Dot form.

Constructors

Instances12Functor, DotRepr, PPDotRepr, ParseDotRepr, PrintDotRepr, FromGeneralisedDot, …
classclass DotRepr dg n => FromGeneralisedDot (dg :: Type -> Type) n where
#

This class is useful for being able to parse in a dot graph as a generalised one, and then convert it to your preferred representation.

This can be seen as a semi-inverse of fromCanonical.

Methods

Instances3FromGeneralisedDot

Sub-components of a DotGraph.

3 declarations
datadata DotStatement n
#
Instances7Functor, Eq, Ord, Read, Show, ParseDot, …
datadata DotSubGraph n
#
Instances7Functor, Eq, Ord, Read, Show, ParseDot, …

Re-exported from Data.GraphViz.Types.

4 declarations
datadata GraphID
#

A polymorphic type that covers all possible ID values allowed by Dot syntax. Note that whilst the ParseDot and PrintDot instances for String will properly take care of the special cases for numbers, they are treated differently here.

Constructors

Instances6Eq, Ord, Read, Show, ParseDot, PrintDot
  • Eq GraphIDDefined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Ord GraphIDDefined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Read GraphIDDefined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Show GraphIDDefined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • ParseDot GraphIDDefined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • PrintDot GraphIDDefined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
datadata GlobalAttributes
#

Represents a list of top-level list of Attributes for the entire graph/sub-graph. Note that GraphAttrs also applies to DotSubGraphs.

Note that Dot allows a single Attribute to be listed on a line; if this is the case then when parsing, the type of Attribute it is determined and that type of GlobalAttribute is created.

Instances6Eq, Ord, Read, Show, ParseDot, PrintDot
datadata DotNode n
#

A node in DotGraph.

Instances7Functor, Eq, Ord, Read, Show, ParseDot, …
  • Functor DotNodeDefined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Eq n => Eq (DotNode n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Ord n => Ord (DotNode n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Read n => Read (DotNode n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Show n => Show (DotNode n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • ParseDot n => ParseDot (DotNode n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • PrintDot n => PrintDot (DotNode n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
datadata DotEdge n
#

An edge in DotGraph.

Instances7Functor, Eq, Ord, Read, Show, ParseDot, …
  • Functor DotEdgeDefined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Eq n => Eq (DotEdge n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Ord n => Ord (DotEdge n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Read n => Read (DotEdge n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • Show n => Show (DotEdge n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • ParseDot n => ParseDot (DotEdge n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common
  • PrintDot n => PrintDot (DotEdge n)Defined in graphviz-2999.20.2.0 · Data.GraphViz.Types.Internal.Common