Defines the parameters used to convert a Graph into a DotRepr.
A value of type GraphvizParams n nl el cl l indicates that
the Graph has a node type of n, node labels of type nl,
edge labels of type el, corresponding clusters of type cl and
after clustering the nodes have a label of type l (which may or
may not be the same as nl).
The tuples in the function types represent labelled nodes (for
(n,nl) and (n,l)) and labelled edges ((n,n,el); the value
(f,t,ftl) is an edge from f to l with a label of ftl).
These correspond to LNode and LEdge in FGL graphs.
The clustering in clusterBy can be to arbitrary depth.
Note that the term "cluster" is slightly conflated here: in
terms of GraphvizParams values, a cluster is a grouping of
nodes; the isDotCluster function lets you specify whether it is
a cluster in the Dot sense or just a sub-graph.
Constructors
ParamsisDirected :: BoolTrueif the graph is directed;Falseotherwise.globalAttributes :: [GlobalAttributes]The top-level global Attributes for the entire graph.
clusterBy :: (n, nl) -> NodeCluster cl (n, l)A function to specify which cluster a particular node is in.
isDotCluster :: cl -> BoolIs this "cluster" actually a cluster, or just a sub-graph?
clusterID :: cl -> GraphIDThe name/identifier for a cluster.
fmtCluster :: cl -> [GlobalAttributes]Specify which global attributes are applied in the given cluster.
fmtNode :: (n, l) -> AttributesThe specific
Attributesfor a node.fmtEdge :: (n, n, el) -> AttributesThe specific
Attributesfor an edge.