Data.GraphViz.Attributes.Complete

graphviz-2999.18.1.2: Bindings to Graphviz for graph visualisation.

Copyright | (c) Matthew Sackman, Ivan Lazar Miljenovic
License | 3-Clause BSD-style
Maintainer | Ivan.Miljenovic@gmail.com
Safe Haskell | Safe
Language | Haskell2010

Data.GraphViz.Attributes.Complete

Contents

- The actual Dot attributes.
  - Validity functions on `Attribute` values.
  - Custom attributes.
- Value types for `Attribute`s.
  - Generic types
  - Labels
    - Types representing the Dot grammar for records.
  - Nodes
  - Edges
    - Modifying where edges point
    - Arrows
      - `ArrowModifier` values
  - Positioning
  - Layout
  - Modes
  - Layers
  - Stylistic

Description

If you are just using graphviz to create basic Dot graphs, then you probably want to use Data.GraphViz.Attributes rather than this module.

This module defines the various attributes that different parts of a Graphviz graph can have. These attributes are based on the documentation found at: http://graphviz.org/doc/info/attrs.html

For more information on usage, etc. please see that document.

A summary of known current constraints/limitations/differences:

- Note that for an edge, in Dot parlance if the edge goes from A to B, then A is the tail node and B is the head node (since A is at the tail end of the arrow).
- `ColorList`, `DoubleList` and `PointfList` are defined as actual lists (``LayerList`` needs a newtype for other reasons). All of these are assumed to be non-empty lists.
- For the various `*Color` attributes that take in a list of `Color` values, usually only one color is used. The `Color` attribute for edges allows multiple values; for other attributes, two values are supported for gradient fills in Graphviz >= 2.29.0.
- Style is implemented as a list of `StyleItem` values; note that empty lists are not allowed.
- A lot of values have a possible value of `none`. These now have custom constructors. In fact, most constructors have been expanded upon to give an idea of what they represent rather than using generic terms.
- `Rect` uses two `Point` values to denote the lower-left and top-right corners.
- The two `LabelLoc` attributes have been combined.
- `SplineType` has been replaced with `[`Spline`]`.
- Only polygon-based `Shape`s are available.
- Not every `Attribute` is fully documented/described. However, all those which have specific allowed values should be covered.
- Deprecated `Overlap` algorithms are not defined. Furthermore, the ability to specify an integer prefix for use with the fdp layout is not supported.
- The global `Orientation` attribute is not defined, as it is difficult to distinguish from the node-based `Orientation` `Attribute`; also, its behaviour is duplicated by `Rotate`.
- The `charset` attribute is not available, as graphviz only supports UTF-8 encoding (as it is not currently feasible nor needed to also support Latin1 encoding).
- In Graphviz, when a node or edge has a list of attributes, the colorscheme which is used to identify a color can be set after that color (e.g. `[colorscheme=x11,color=grey,colorscheme=svg]` uses the svg colorscheme's definition of grey, which is different from the x11 one. Instead, graphviz parses them in order.

Synopsis

- data Attribute
  - = Damping Double
  - | K Double
  - | URL EscString
  - | Area Double
  - | ArrowHead ArrowType
  - | ArrowSize Double
  - | ArrowTail ArrowType
  - | Background Text
  - | BoundingBox Rect
  - | BgColor ColorList
  - | Center Bool
  - | ClusterRank ClusterMode
  - | Color ColorList
  - | ColorScheme ColorScheme
  - | Comment Text
  - | Compound Bool
  - | Concentrate Bool
  - | Constraint Bool
  - | Decorate Bool
  - | DefaultDist Double
  - | Dim Int
  - | Dimen Int
  - | Dir DirType
  - | DirEdgeConstraints DEConstraints
  - | Distortion Double
  - | DPI Double
  - | EdgeURL EscString
  - | EdgeTarget EscString
  - | EdgeTooltip EscString
  - | Epsilon Double
  - | ESep DPoint
  - | FillColor ColorList
  - | FixedSize NodeSize
  - | FontColor Color
  - | FontName Text
  - | FontNames SVGFontNames
  - | FontPath Paths
  - | FontSize Double
  - | ForceLabels Bool
  - | GradientAngle Int
  - | Group Text
  - | HeadURL EscString
  - | Head_LP Point
  - | HeadClip Bool
  - | HeadLabel Label
  - | HeadPort PortPos
  - | HeadTarget EscString
  - | HeadTooltip EscString
  - | Height Double
  - | ID EscString
  - | Image Text
  - | ImagePath Paths
  - | ImageScale ScaleType
  - | InputScale Double
  - | Label Label
  - | LabelURL EscString
  - | LabelScheme LabelScheme
  - | LabelAngle Double
  - | LabelDistance Double
  - | LabelFloat Bool
  - | LabelFontColor Color
  - | LabelFontName Text
  - | LabelFontSize Double
  - | LabelJust Justification
  - | LabelLoc VerticalPlacement
  - | LabelTarget EscString
  - | LabelTooltip EscString
  - | Landscape Bool
  - | Layer LayerRange
  - | LayerListSep LayerListSep
  - | Layers LayerList
  - | LayerSelect LayerRange
  - | LayerSep LayerSep
  - | Layout GraphvizCommand
  - | Len Double
  - | Levels Int
  - | LevelsGap Double
  - | LHead Text
  - | LHeight Double
  - | LPos Point
  - | LTail Text
  - | LWidth Double
  - | Margin DPoint
  - | MaxIter Int
  - | MCLimit Double
  - | MinDist Double
  - | MinLen Int
  - | Mode ModeType
  - | Model Model
  - | Mosek Bool
  - | NodeSep Double
  - | NoJustify Bool
  - | Normalize Normalized
  - | NoTranslate Bool
  - | Nslimit Double
  - | Nslimit1 Double
  - | Ordering Order
  - | Orientation Double
  - | OutputOrder OutputMode
  - | Overlap Overlap
  - | OverlapScaling Double
  - | OverlapShrink Bool
  - | Pack Pack
  - | PackMode PackMode
  - | Pad DPoint
  - | Page Point
  - | PageDir PageDir
  - | PenColor Color
  - | PenWidth Double
  - | Peripheries Int
  - | Pin Bool
  - | Pos Pos
  - | QuadTree QuadType
  - | Quantum Double
  - | Rank RankType
  - | RankDir RankDir
  - | RankSep [Double]
  - | Ratio Ratios
  - | Rects [Rect]
  - | Regular Bool
  - | ReMinCross Bool
  - | RepulsiveForce Double
  - | Root Root
  - | Rotate Int
  - | Rotation Double
  - | SameHead Text
  - | SameTail Text
  - | SamplePoints Int
  - | Scale DPoint
  - | SearchSize Int
  - | Sep DPoint
  - | Shape Shape
  - | ShowBoxes Int
  - | Sides Int
  - | Size GraphSize
  - | Skew Double
  - | Smoothing SmoothType
  - | SortV Word16
  - | Splines EdgeType
  - | Start StartType
  - | Style [StyleItem]
  - | StyleSheet Text
  - | TailURL EscString
  - | Tail_LP Point
  - | TailClip Bool
  - | TailLabel Label
  - | TailPort PortPos
  - | TailTarget EscString
  - | TailTooltip EscString
  - | Target EscString
  - | Tooltip EscString
  - | TrueColor Bool
  - | Vertices [Point]
  - | ViewPort ViewPort
  - | VoroMargin Double
  - | Weight Number
  - | Width Double
  - | XDotVersion Version
  - | XLabel Label
  - | XLP Point
  - | UnknownAttribute AttributeName Text
- type Attributes = [Attribute]
- sameAttribute :: Attribute -> Attribute -> Bool
- defaultAttributeValue :: Attribute -> Maybe Attribute
- rmUnwantedAttributes :: Attributes -> Attributes
- usedByGraphs :: Attribute -> Bool
- usedBySubGraphs :: Attribute -> Bool
- usedByClusters :: Attribute -> Bool
- usedByNodes :: Attribute -> Bool
- usedByEdges :: Attribute -> Bool
- validUnknown :: AttributeName -> Bool
- type AttributeName = Text
- type CustomAttribute = Attribute
- customAttribute :: AttributeName -> Text -> CustomAttribute
- isCustom :: Attribute -> Bool
- isSpecifiedCustom :: AttributeName -> Attribute -> Bool
- customValue :: CustomAttribute -> Text
- customName :: CustomAttribute -> AttributeName
- findCustoms :: Attributes -> ([CustomAttribute], Attributes)
- findSpecifiedCustom :: AttributeName -> Attributes -> Maybe (CustomAttribute, Attributes)
- deleteCustomAttributes :: Attributes -> Attributes
- deleteSpecifiedCustom :: AttributeName -> Attributes -> Attributes
- module Data.GraphViz.Attributes.Colors
- data Number
  - = Int Int
  - | Dbl Double
- type EscString = Text
- data Label
  - = StrLabel EscString
  - | HtmlLabel Label
  - | RecordLabel RecordFields
- data VerticalPlacement
  - = VTop
  - | VCenter
  - | VBottom
- data LabelScheme
  - = NotEdgeLabel
  - | CloseToCenter
  - | CloseToOldCenter
  - | RemoveAndStraighten
- data SVGFontNames
  - = SvgNames
  - | PostScriptNames
  - | FontConfigNames
- type RecordFields = [RecordField]
- data RecordField
  - = LabelledTarget PortName EscString
  - | PortName PortName
  - | FieldLabel EscString
  - | FlipFields RecordFields
- data Rect = Rect Point Point
- data Justification
  - = JLeft
  - | JRight
  - | JCenter
- data Shape
  - = BoxShape
  - | Polygon
  - | Ellipse
  - | Circle
  - | PointShape
  - | Egg
  - | Triangle
  - | PlainText
  - | DiamondShape
  - | Trapezium
  - | Parallelogram
  - | House
  - | Pentagon
  - | Hexagon
  - | Septagon
  - | Octagon
  - | DoubleCircle
  - | DoubleOctagon
  - | TripleOctagon
  - | InvTriangle
  - | InvTrapezium
  - | InvHouse
  - | MDiamond
  - | MSquare
  - | MCircle
  - | Square
  - | Star
  - | Underline
  - | Note
  - | Tab
  - | Folder
  - | Box3D
  - | Component
  - | Promoter
  - | CDS
  - | Terminator
  - | UTR
  - | PrimerSite
  - | RestrictionSite
  - | FivePovOverhang
  - | ThreePovOverhang
  - | NoOverhang
  - | Assembly
  - | Signature
  - | Insulator
  - | Ribosite
  - | RNAStab
  - | ProteaseSite
  - | ProteinStab
  - | RPromoter
  - | RArrow
  - | LArrow
  - | LPromoter
  - | Record
  - | MRecord
- newtype Paths = Paths {
  - paths :: [FilePath]
  }
- data ScaleType
  - = UniformScale
  - | NoScale
  - | FillWidth
  - | FillHeight
  - | FillBoth
- data NodeSize
  - = GrowAsNeeded
  - | SetNodeSize
  - | SetShapeSize
- data DirType
  - = Forward
  - | Back
  - | Both
  - | NoDir
- data EdgeType
  - = SplineEdges
  - | LineEdges
  - | NoEdges
  - | PolyLine
  - | Ortho
  - | Curved
  - | CompoundEdge
- newtype PortName = PN {
  - portName :: Text
  }
- data PortPos
  - = LabelledPort PortName (Maybe CompassPoint)
  - | CompassPoint CompassPoint
- data CompassPoint
  - = North
  - | NorthEast
  - | East
  - | SouthEast
  - | South
  - | SouthWest
  - | West
  - | NorthWest
  - | CenterPoint
  - | NoCP
- newtype ArrowType = AType [(ArrowModifier, ArrowShape)]
- data ArrowShape
  - = Box
  - | Crow
  - | Diamond
  - | DotArrow
  - | Inv
  - | NoArrow
  - | Normal
  - | Tee
  - | Vee
- data ArrowModifier = ArrMod {
  - arrowFill :: ArrowFill
  - arrowSide :: ArrowSide
  }
- data ArrowFill
  - = OpenArrow
  - | FilledArrow
- data ArrowSide
  - = LeftSide
  - | RightSide
  - | BothSides
- noMods :: ArrowModifier
- openMod :: ArrowModifier
- data Point = Point {
  - xCoord :: Double
  - yCoord :: Double
  - zCoord :: Maybe Double
  - forcePos :: Bool
  }
- createPoint :: Double -> Double -> Point
- data Pos
  - = PointPos Point
  - | SplinePos [Spline]
- data Spline = Spline {
  - endPoint :: Maybe Point
  - startPoint :: Maybe Point
  - splinePoints :: [Point]
  }
- data DPoint
  - = DVal Double
  - | PVal Point
- data Normalized
  - = IsNormalized
  - | NotNormalized
  - | NormalizedAngle Double
- data GraphvizCommand
  - = Dot
  - | Neato
  - | TwoPi
  - | Circo
  - | Fdp
  - | Sfdp
  - | Osage
  - | Patchwork
- data GraphSize = GSize {
  - width :: Double
  - height :: Maybe Double
  - desiredSize :: Bool
  }
- data ClusterMode
  - = Local
  - | Global
  - | NoCluster
- data Model
  - = ShortPath
  - | SubSet
  - | Circuit
  - | MDS
- data Overlap
  - = KeepOverlaps
  - | ScaleOverlaps
  - | ScaleXYOverlaps
  - | PrismOverlap (Maybe Word16)
  - | VoronoiOverlap
  - | CompressOverlap
  - | VpscOverlap
  - | IpsepOverlap
- data Root
  - = IsCentral
  - | NotCentral
  - | NodeName Text
- data Order
  - = OutEdges
  - | InEdges
- data OutputMode
  - = BreadthFirst
  - | NodesFirst
  - | EdgesFirst
- data Pack
  - = DoPack
  - | DontPack
  - | PackMargin Int
- data PackMode
  - = PackNode
  - | PackClust
  - | PackGraph
  - | PackArray Bool Bool (Maybe Int)
- data PageDir
  - = Bl
  - | Br
  - | Tl
  - | Tr
  - | Rb
  - | Rt
  - | Lb
  - | Lt
- data QuadType
  - = NormalQT
  - | FastQT
  - | NoQT
- data RankType
  - = SameRank
  - | MinRank
  - | SourceRank
  - | MaxRank
  - | SinkRank
- data RankDir
  - = FromTop
  - | FromLeft
  - | FromBottom
  - | FromRight
- data StartType
  - = StartStyle STStyle
  - | StartSeed Int
  - | StartStyleSeed STStyle Int
- data ViewPort = VP {
  - wVal :: Double
  - hVal :: Double
  - zVal :: Double
  - focus :: Maybe FocusType
  }
- data FocusType
  - = XY Point
  - | NodeFocus Text
- data Ratios
  - = AspectRatio Double
  - | FillRatio
  - | CompressRatio
  - | ExpandRatio
  - | AutoRatio
- data ModeType
  - = Major
  - | KK
  - | Hier
  - | IpSep
  - | SpringMode
  - | MaxEnt
- data DEConstraints
  - = EdgeConstraints
  - | NoConstraints
  - | HierConstraints
- newtype LayerSep = LSep Text
- newtype LayerListSep = LLSep Text
- type LayerRange = [LayerRangeElem]
- data LayerRangeElem
  - = LRID LayerID
  - | LRS LayerID LayerID
- data LayerID
  - = AllLayers
  - | LRInt Int
  - | LRName Text
- newtype LayerList = LL [LayerID]
- data SmoothType
  - = NoSmooth
  - | AvgDist
  - | GraphDist
  - | PowerDist
  - | RNG
  - | Spring
  - | TriangleSmooth
- data STStyle
  - = RegularStyle
  - | SelfStyle
  - | RandomStyle
- data StyleItem = SItem StyleName [Text]
- data StyleName
  - = Dashed
  - | Dotted
  - | Solid
  - | Bold
  - | Invisible
  - | Filled
  - | Striped
  - | Wedged
  - | Diagonals
  - | Rounded
  - | Tapered
  - | Radial
  - | DD Text

# The actual Dot attributes.

These attributes have been implemented in a permissive manner: that is, rather than split them up based on which type of value they are allowed, they have all been included in the one data type, with functions to determine if they are indeed valid for what they're being applied to.

To interpret the Valid for listings:

`G`
  Valid for Graphs.
`C`
  Valid for Clusters.
`S`
  Valid for Sub-Graphs (and also Clusters).
`N`
  Valid for Nodes.
`E`
  Valid for Edges.

The Default listings are those that the various Graphviz commands use if that `Attribute` isn't specified (in cases where this is none, this is equivalent to a `Nothing` value; that is, no value is used). The Parsing Default listings represent what value is used (i.e. corresponds to `True`) when the `Attribute` name is listed on its own in Dot source code.

Please note that the `UnknownAttribute` `Attribute` is defined primarily for backwards-compatibility purposes. It is possible to use it directly for custom purposes; for more information, please see `CustomAttribute`. The `deleteCustomAttributes` can be used to delete these values.

data Attribute #

Attributes are used to customise the layout and design of Dot graphs. Care must be taken to ensure that the attribute you use is valid, as not all attributes can be used everywhere.

Constructors

Damping Double | Valid for: G; Default: `0.99`; Minimum: `0.0`; Notes: `Neato` only
K Double | Valid for: GC; Default: `0.3`; Minimum: `0`; Notes: `Sfdp`, `Fdp` only
URL EscString | Valid for: ENGC; Default: none; Notes: svg, postscript, map only
Area Double | Valid for: NC; Default: `1.0`; Minimum: `>0`; Notes: `Patchwork` only, requires Graphviz >= 2.30.0
ArrowHead ArrowType | Valid for: E; Default: ``normal``
ArrowSize Double | Valid for: E; Default: `1.0`; Minimum: `0.0`
ArrowTail ArrowType | Valid for: E; Default: ``normal``
Background Text | Valid for: G; Default: none; Notes: xdot only
BoundingBox Rect | Valid for: G; Notes: write only
BgColor ColorList | Valid for: GC; Default: `[]`
Center Bool | Valid for: G; Default: ``False``; Parsing Default: `True`
ClusterRank ClusterMode | Valid for: G; Default: ``Local``; Notes: `Dot` only
Color ColorList | Valid for: ENC; Default: `[`WC` (`X11Color` `Black`) Nothing]`
ColorScheme ColorScheme | Valid for: ENCG; Default: ``X11``
Comment Text | Valid for: ENG; Default: `""`
Compound Bool | Valid for: G; Default: ``False``; Parsing Default: `True`; Notes: `Dot` only
Concentrate Bool | Valid for: G; Default: ``False``; Parsing Default: `True`
Constraint Bool | Valid for: E; Default: ``True``; Parsing Default: `True`; Notes: `Dot` only
Decorate Bool | Valid for: E; Default: ``False``; Parsing Default: `True`
DefaultDist Double | Valid for: G; Default: `1+(avg. len)*sqrt(abs(V))` (unable to statically define); Minimum: The value of `Epsilon`.; Notes: `Neato` only, only if ``Pack` `DontPack``
Dim Int | Valid for: G; Default: `2`; Minimum: `2`; Notes: maximum of `10`; `Sfdp`, `Fdp`, `Neato` only
Dimen Int | Valid for: G; Default: `2`; Minimum: `2`; Notes: maximum of `10`; `Sfdp`, `Fdp`, `Neato` only
Dir DirType | Valid for: E; Default: ``Forward`` (directed), ``NoDir`` (undirected)
DirEdgeConstraints DEConstraints | Valid for: G; Default: ``NoConstraints``; Parsing Default: `EdgeConstraints`; Notes: `Neato` only
Distortion Double | Valid for: N; Default: `0.0`; Minimum: `-100.0`
DPI Double | Valid for: G; Default: `96.0`, `0.0`; Notes: svg, bitmap output only; "resolution" is a synonym
EdgeURL EscString | Valid for: E; Default: `""`; Notes: svg, map only
EdgeTarget EscString | Valid for: E; Default: none; Notes: svg, map only
EdgeTooltip EscString | Valid for: E; Default: `""`; Notes: svg, cmap only
Epsilon Double | Valid for: G; Default: `.0001 * # nodes` (`mode == `KK``), `.0001` (`mode == `Major``); Notes: `Neato` only
ESep DPoint | Valid for: G; Default: ``DVal` 3`; Notes: not `Dot`
FillColor ColorList | Valid for: NEC; Default: `[`WC` (`X11Color` `LightGray`) Nothing]` (nodes), `[`WC` (`X11Color` `Black`) Nothing]` (clusters)
FixedSize NodeSize | Valid for: N; Default: ``GrowAsNeeded``; Parsing Default: `SetNodeSize`
FontColor Color | Valid for: ENGC; Default: ``X11Color` `Black``
FontName Text | Valid for: ENGC; Default: `"Times-Roman"`
FontNames SVGFontNames | Valid for: G; Default: ``SvgNames``; Notes: svg only
FontPath Paths | Valid for: G; Default: system dependent
FontSize Double | Valid for: ENGC; Default: `14.0`; Minimum: `1.0`
ForceLabels Bool | Valid for: G; Default: ``True``; Parsing Default: `True`; Notes: only for `XLabel` attributes, requires Graphviz >= 2.29.0
GradientAngle Int | Valid for: NCG; Default: 0; Notes: requires Graphviz >= 2.29.0
Group Text | Valid for: N; Default: `""`; Notes: `Dot` only
HeadURL EscString | Valid for: E; Default: `""`; Notes: svg, map only
Head_LP Point | Valid for: E; Notes: write only, requires Graphviz >= 2.30.0
HeadClip Bool | Valid for: E; Default: ``True``; Parsing Default: `True`
HeadLabel Label | Valid for: E; Default: ``StrLabel` ""`
HeadPort PortPos | Valid for: E; Default: ``CompassPoint` `CenterPoint``
HeadTarget EscString | Valid for: E; Default: none; Notes: svg, map only
HeadTooltip EscString | Valid for: E; Default: `""`; Notes: svg, cmap only
Height Double | Valid for: N; Default: `0.5`; Minimum: `0.02`
ID EscString | Valid for: GNE; Default: `""`; Notes: svg, postscript, map only
Image Text | Valid for: N; Default: `""`
ImagePath Paths | Valid for: G; Default: ``Paths` []`; Notes: Printing and parsing is OS-specific, requires Graphviz >= 2.29.0
ImageScale ScaleType | Valid for: N; Default: ``NoScale``; Parsing Default: `UniformScale`
InputScale Double | Valid for: N; Default: none; Notes: `Fdp`, `Neato` only, a value of `0` is equivalent to being `72`, requires Graphviz >= 2.36.0
Label Label | Valid for: ENGC; Default: ``StrLabel` "\N"` (nodes), ``StrLabel` ""` (otherwise)
LabelURL EscString | Valid for: E; Default: `""`; Notes: svg, map only
LabelScheme LabelScheme | Valid for: G; Default: ``NotEdgeLabel``; Notes: `Sfdp` only, requires Graphviz >= 2.28.0
LabelAngle Double | Valid for: E; Default: `-25.0`; Minimum: `-180.0`
LabelDistance Double | Valid for: E; Default: `1.0`; Minimum: `0.0`
LabelFloat Bool | Valid for: E; Default: ``False``; Parsing Default: `True`
LabelFontColor Color | Valid for: E; Default: ``X11Color` `Black``
LabelFontName Text | Valid for: E; Default: `"Times-Roman"`
LabelFontSize Double | Valid for: E; Default: `14.0`; Minimum: `1.0`
LabelJust Justification | Valid for: GC; Default: ``JCenter``
LabelLoc VerticalPlacement | Valid for: GCN; Default: ``VTop`` (clusters), ``VBottom`` (root graphs), ``VCenter`` (nodes)
LabelTarget EscString | Valid for: E; Default: none; Notes: svg, map only
LabelTooltip EscString | Valid for: E; Default: `""`; Notes: svg, cmap only
Landscape Bool | Valid for: G; Default: ``False``; Parsing Default: `True`
Layer LayerRange | Valid for: ENC; Default: `[]`
LayerListSep LayerListSep | Valid for: G; Default: ``LLSep` ","`; Notes: requires Graphviz >= 2.30.0
Layers LayerList | Valid for: G; Default: ``LL` []`
LayerSelect LayerRange | Valid for: G; Default: `[]`
LayerSep LayerSep | Valid for: G; Default: ``LSep` " :t"`
Layout GraphvizCommand | Valid for: G
Len Double | Valid for: E; Default: `1.0` (`Neato`), `0.3` (`Fdp`); Notes: `Fdp`, `Neato` only
Levels Int | Valid for: G; Default: ``maxBound``; Minimum: `0`; Notes: `Sfdp` only
LevelsGap Double | Valid for: G; Default: `0.0`; Notes: `Neato` only
LHead Text | Valid for: E; Default: `""`; Notes: `Dot` only
LHeight Double | Valid for: GC; Notes: write only, requires Graphviz >= 2.28.0
LPos Point | Valid for: EGC; Notes: write only
LTail Text | Valid for: E; Default: `""`; Notes: `Dot` only
LWidth Double | Valid for: GC; Notes: write only, requires Graphviz >= 2.28.0
Margin DPoint | Valid for: NGC; Default: device dependent
MaxIter Int | Valid for: G; Default: `100 * # nodes` (`mode == `KK``), `200` (`mode == `Major``), `600` (`Fdp`); Notes: `Fdp`, `Neato` only
MCLimit Double | Valid for: G; Default: `1.0`; Notes: `Dot` only
MinDist Double | Valid for: G; Default: `1.0`; Minimum: `0.0`; Notes: `Circo` only
MinLen Int | Valid for: E; Default: `1`; Minimum: `0`; Notes: `Dot` only
Mode ModeType | Valid for: G; Default: ``Major`` (actually ``Spring`` for `Sfdp`, but this isn't used as a default in this library); Notes: `Neato`, `Sfdp` only
Model Model | Valid for: G; Default: ``ShortPath``; Notes: `Neato` only
Mosek Bool | Valid for: G; Default: ``False``; Parsing Default: `True`; Notes: `Neato` only; requires the Mosek software
NodeSep Double | Valid for: G; Default: `0.25`; Minimum: `0.02`
NoJustify Bool | Valid for: GCNE; Default: ``False``; Parsing Default: `True`
Normalize Normalized | Valid for: G; Default: ``NotNormalized``; Parsing Default: `IsNormalized`; Notes: not `Dot`
NoTranslate Bool | Valid for: G; Default: ``False``; Parsing Default: `True`; Notes: `Neato` only, requires Graphviz >= 2.38.0
Nslimit Double | Valid for: G; Notes: `Dot` only
Nslimit1 Double | Valid for: G; Notes: `Dot` only
Ordering Order | Valid for: GN; Default: none; Notes: `Dot` only
Orientation Double | Valid for: N; Default: `0.0`; Minimum: `360.0`
OutputOrder OutputMode | Valid for: G; Default: ``BreadthFirst``
Overlap Overlap | Valid for: G; Default: ``KeepOverlaps``; Parsing Default: `KeepOverlaps`; Notes: not `Dot`
OverlapScaling Double | Valid for: G; Default: `-4`; Minimum: `-1.0e10`; Notes: `PrismOverlap` only
OverlapShrink Bool | Valid for: G; Default: ``True``; Parsing Default: `True`; Notes: `PrismOverlap` only, requires Graphviz >= 2.36.0
Pack Pack | Valid for: G; Default: ``DontPack``; Parsing Default: `DoPack`
PackMode PackMode | Valid for: G; Default: ``PackNode``
Pad DPoint | Valid for: G; Default: ``DVal` 0.0555` (4 points)
Page Point | Valid for: G
PageDir PageDir | Valid for: G; Default: ``Bl``
PenColor Color | Valid for: C; Default: ``X11Color` `Black``
PenWidth Double | Valid for: CNE; Default: `1.0`; Minimum: `0.0`
Peripheries Int | Valid for: NC; Default: shape default (nodes), `1` (clusters); Minimum: 0
Pin Bool | Valid for: N; Default: ``False``; Parsing Default: `True`; Notes: `Fdp`, `Neato` only
Pos Pos | Valid for: EN
QuadTree QuadType | Valid for: G; Default: ``NormalQT``; Parsing Default: `NormalQT`; Notes: `Sfdp` only
Quantum Double | Valid for: G; Default: `0.0`; Minimum: `0.0`
Rank RankType | Valid for: S; Notes: `Dot` only
RankDir RankDir | Valid for: G; Default: ``FromTop``; Notes: `Dot` only
RankSep [Double] | Valid for: G; Default: `[0.5]` (`Dot`), `[1.0]` (`Twopi`); Minimum: `[0.02]`; Notes: `Twopi`, `Dot` only
Ratio Ratios | Valid for: G
Rects [Rect] | Valid for: N; Notes: write only
Regular Bool | Valid for: N; Default: ``False``; Parsing Default: `True`
ReMinCross Bool | Valid for: G; Default: ``False``; Parsing Default: `True`; Notes: `Dot` only
RepulsiveForce Double | Valid for: G; Default: `1.0`; Minimum: `0.0`; Notes: `Sfdp` only
Root Root | Valid for: GN; Default: ``NodeName` ""` (graphs), ``NotCentral`` (nodes); Parsing Default: `IsCentral`; Notes: `Circo`, `Twopi` only
Rotate Int | Valid for: G; Default: `0`
Rotation Double | Valid for: G; Default: `0`; Notes: `Sfdp` only, requires Graphviz >= 2.28.0
SameHead Text | Valid for: E; Default: `""`; Notes: `Dot` only
SameTail Text | Valid for: E; Default: `""`; Notes: `Dot` only
SamplePoints Int | Valid for: N; Default: `8` (output), `20` (overlap and image maps)
Scale DPoint | Valid for: G; Notes: Not `Dot`, requires Graphviz >= 2.28.0 (>= 2.38.0 for anything except `TwoPi`)
SearchSize Int | Valid for: G; Default: `30`; Notes: `Dot` only
Sep DPoint | Valid for: G; Default: ``DVal` 4`; Notes: not `Dot`
Shape Shape | Valid for: N; Default: ``Ellipse``
ShowBoxes Int | Valid for: ENG; Default: `0`; Minimum: `0`; Notes: `Dot` only; used for debugging by printing PostScript guide boxes
Sides Int | Valid for: N; Default: `4`; Minimum: `0`
Size GraphSize | Valid for: G
Skew Double | Valid for: N; Default: `0.0`; Minimum: `-100.0`
Smoothing SmoothType | Valid for: G; Default: ``NoSmooth``; Notes: `Sfdp` only
SortV Word16 | Valid for: GCN; Default: `0`; Minimum: `0`
Splines EdgeType | Valid for: G; Default: ``SplineEdges`` (`Dot`), ``LineEdges`` (other); Parsing Default: `SplineEdges`
Start StartType | Valid for: G; Default: ``StartStyleSeed` `RandomStyle` seed` for some unknown fixed seed.; Notes: `Fdp`, `Neato` only
Style [StyleItem] | Valid for: ENCG
StyleSheet Text | Valid for: G; Default: `""`; Notes: svg only
TailURL EscString | Valid for: E; Default: `""`; Notes: svg, map only
Tail_LP Point | Valid for: E; Notes: write only, requires Graphviz >= 2.30.0
TailClip Bool | Valid for: E; Default: ``True``; Parsing Default: `True`
TailLabel Label | Valid for: E; Default: ``StrLabel` ""`
TailPort PortPos | Valid for: E; Default: ``CompassPoint` `CenterPoint``
TailTarget EscString | Valid for: E; Default: none; Notes: svg, map only
TailTooltip EscString | Valid for: E; Default: `""`; Notes: svg, cmap only
Target EscString | Valid for: ENGC; Default: none; Notes: svg, map only
Tooltip EscString | Valid for: NEC; Default: `""`; Notes: svg, cmap only
TrueColor Bool | Valid for: G; Parsing Default: `True`; Notes: bitmap output only
Vertices [Point] | Valid for: N; Notes: write only
ViewPort ViewPort | Valid for: G; Default: none
VoroMargin Double | Valid for: G; Default: `0.05`; Minimum: `0.0`; Notes: not `Dot`
Weight Number | Valid for: E; Default: ``Int` 1`; Minimum: ``Int` 0` (`Dot`), ``Int` 1` (`Neato`,`Fdp`,`Sfdp`); Notes: as of Graphviz 2.30: weights for dot need to be `Int`s
Width Double | Valid for: N; Default: `0.75`; Minimum: `0.01`
XDotVersion Version | Valid for: G; Notes: xdot only, requires Graphviz >= 2.34.0, equivalent to specifying version of xdot to be used
XLabel Label | Valid for: EN; Default: ``StrLabel` ""`; Notes: requires Graphviz >= 2.29.0
XLP Point | Valid for: EN; Notes: write only, requires Graphviz >= 2.29.0
UnknownAttribute AttributeName Text | Valid for: Assumed valid for all; the fields are `Attribute` name and value respectively.

Instances

Eq Attribute # |
Methods (==) :: Attribute -> Attribute -> Bool # (/=) :: Attribute -> Attribute -> Bool #
Ord Attribute # |
Methods compare :: Attribute -> Attribute -> Ordering # (<) :: Attribute -> Attribute -> Bool # (<=) :: Attribute -> Attribute -> Bool # (>) :: Attribute -> Attribute -> Bool # (>=) :: Attribute -> Attribute -> Bool # max :: Attribute -> Attribute -> Attribute # min :: Attribute -> Attribute -> Attribute #
Read Attribute # |
Methods readsPrec :: Int -> ReadS Attribute # readList :: ReadS [Attribute] # readPrec :: ReadPrec Attribute # readListPrec :: ReadPrec [Attribute] #
Show Attribute # |
Methods showsPrec :: Int -> Attribute -> ShowS # show :: Attribute -> String # showList :: [Attribute] -> ShowS #
ParseDot Attribute # |
Methods parseUnqt :: Parse Attribute # parse :: Parse Attribute # parseUnqtList :: Parse [Attribute] # parseList :: Parse [Attribute] #
PrintDot Attribute # |
Methods unqtDot :: Attribute -> DotCode # toDot :: Attribute -> DotCode # unqtListToDot :: [Attribute] -> DotCode # listToDot :: [Attribute] -> DotCode #

type Attributes = [Attribute] #

sameAttribute :: Attribute -> Attribute -> Bool #

Determine if two `Attributes` are the same type of `Attribute`.

defaultAttributeValue :: Attribute -> Maybe Attribute #

Return the default value for a specific `Attribute` if possible; graphcluster values are preferred over nodeedge values.

rmUnwantedAttributes :: Attributes -> Attributes #

Remove attributes that we don't want to consider:

- Those that are defaults
- colorscheme (as the colors embed it anyway)

## Validity functions on `Attribute` values.

usedByGraphs :: Attribute -> Bool #

Determine if this `Attribute` is valid for use with Graphs.

usedBySubGraphs :: Attribute -> Bool #

Determine if this `Attribute` is valid for use with SubGraphs.

usedByClusters :: Attribute -> Bool #

Determine if this `Attribute` is valid for use with Clusters.

usedByNodes :: Attribute -> Bool #

Determine if this `Attribute` is valid for use with Nodes.

usedByEdges :: Attribute -> Bool #

Determine if this `Attribute` is valid for use with Edges.

validUnknown :: AttributeName -> Bool #

Determine if the provided `Text` value is a valid name for an `UnknownAttribute`.

## Custom attributes.

type AttributeName = Text #

The name for an UnknownAttribute; must satisfy `validUnknown`.

type CustomAttribute = Attribute #

If performing any custom pre-/post-processing on Dot code, you may wish to utilise some custom `Attributes`. These are wrappers around the `UnknownAttribute` constructor (and thus `CustomAttribute` is just an alias for `Attribute`).

You should ensure that `validUnknown` is `True` for any potential custom attribute name.

customAttribute :: AttributeName -> Text -> CustomAttribute #

Create a custom attribute.

isCustom :: Attribute -> Bool #

Determines whether or not this is a custom attribute.

isSpecifiedCustom :: AttributeName -> Attribute -> Bool #

customValue :: CustomAttribute -> Text #

The value of a custom attribute. Will throw a `GraphvizException` if the provided `Attribute` isn't a custom one.

customName :: CustomAttribute -> AttributeName #

The name of a custom attribute. Will throw a `GraphvizException` if the provided `Attribute` isn't a custom one.

findCustoms :: Attributes -> ([CustomAttribute], Attributes) #

Returns all custom attributes and the list of non-custom Attributes.

findSpecifiedCustom :: AttributeName -> Attributes -> Maybe (CustomAttribute, Attributes) #

Find the (first instance of the) specified custom attribute and returns it along with all other Attributes.

deleteCustomAttributes :: Attributes -> Attributes #

Delete all custom attributes (actually, this will delete all `UnknownAttribute` values; as such it can also be used to remove legacy attributes).

deleteSpecifiedCustom :: AttributeName -> Attributes -> Attributes #

Removes all instances of the specified custom attribute.

# Value types for `Attribute`s.

module Data.GraphViz.Attributes.Colors

## Generic types

data Number #

A numeric type with an explicit separation between integers and floating-point values.

Constructors

Int Int |
Dbl Double |

Instances

Eq Number # |
Methods (==) :: Number -> Number -> Bool # (/=) :: Number -> Number -> Bool #
Ord Number # |
Methods compare :: Number -> Number -> Ordering # (<) :: Number -> Number -> Bool # (<=) :: Number -> Number -> Bool # (>) :: Number -> Number -> Bool # (>=) :: Number -> Number -> Bool # max :: Number -> Number -> Number # min :: Number -> Number -> Number #
Read Number # |
Methods readsPrec :: Int -> ReadS Number # readList :: ReadS [Number] # readPrec :: ReadPrec Number # readListPrec :: ReadPrec [Number] #
Show Number # |
Methods showsPrec :: Int -> Number -> ShowS # show :: Number -> String # showList :: [Number] -> ShowS #
ParseDot Number # |
Methods parseUnqt :: Parse Number # parse :: Parse Number # parseUnqtList :: Parse [Number] # parseList :: Parse [Number] #
PrintDot Number # |
Methods unqtDot :: Number -> DotCode # toDot :: Number -> DotCode # unqtListToDot :: [Number] -> DotCode # listToDot :: [Number] -> DotCode #

## Labels

type EscString = Text #

Some `Attribute`s (mainly label-like ones) take a `String` argument that allows for extra escape codes. This library doesn't do any extra checks or special parsing for these escape codes, but usage of `EscString` rather than `Text` indicates that the Graphviz tools will recognise these extra escape codes for these `Attribute`s.

The extra escape codes include (note that these are all Strings):

`\N`
  Replace with the name of the node (for Node `Attribute`s).
`\G`
  Replace with the name of the graph (for Node `Attribute`s) or the name of the graph or cluster, whichever is applicable (for Graph, Cluster and Edge `Attribute`s).
`\E`
  Replace with the name of the edge, formed by the two adjoining nodes and the edge type (for Edge `Attribute`s).
`\T`
  Replace with the name of the tail node (for Edge `Attribute`s).
`\H`
  Replace with the name of the head node (for Edge `Attribute`s).
`\L`
  Replace with the object's label (for all `Attribute`s).

Also, if the `Attribute` in question is `Label`, `HeadLabel` or `TailLabel`, then `\n`, `\l` and `\r` split the label into lines centered, left-justified and right-justified respectively.

data Label #

Constructors

StrLabel EscString |
HtmlLabel Label | If `PlainText` is used, the `Label` value is the entire "shape"; if anything else except `PointShape` is used then the `Label` is embedded within the shape.
RecordLabel RecordFields | For nodes only; requires either `Record` or `MRecord` as the shape.

Instances

Eq Label # |
Methods (==) :: Label -> Label -> Bool # (/=) :: Label -> Label -> Bool #
Ord Label # |
Methods compare :: Label -> Label -> Ordering # (<) :: Label -> Label -> Bool # (<=) :: Label -> Label -> Bool # (>) :: Label -> Label -> Bool # (>=) :: Label -> Label -> Bool # max :: Label -> Label -> Label # min :: Label -> Label -> Label #
Read Label # |
Methods readsPrec :: Int -> ReadS Label # readList :: ReadS [Label] # readPrec :: ReadPrec Label # readListPrec :: ReadPrec [Label] #
Show Label # |
Methods showsPrec :: Int -> Label -> ShowS # show :: Label -> String # showList :: [Label] -> ShowS #
ParseDot Label # |
Methods parseUnqt :: Parse Label # parse :: Parse Label # parseUnqtList :: Parse [Label] # parseList :: Parse [Label] #
PrintDot Label # |
Methods unqtDot :: Label -> DotCode # toDot :: Label -> DotCode # unqtListToDot :: [Label] -> DotCode # listToDot :: [Label] -> DotCode #

data VerticalPlacement #

Constructors

VTop |
VCenter | Only valid for Nodes.
VBottom |

Instances

Bounded VerticalPlacement # |
Methods minBound :: VerticalPlacement # maxBound :: VerticalPlacement #
Enum VerticalPlacement # |
Methods succ :: VerticalPlacement -> VerticalPlacement # pred :: VerticalPlacement -> VerticalPlacement # toEnum :: Int -> VerticalPlacement # fromEnum :: VerticalPlacement -> Int # enumFrom :: VerticalPlacement -> [VerticalPlacement] # enumFromThen :: VerticalPlacement -> VerticalPlacement -> [VerticalPlacement] # enumFromTo :: VerticalPlacement -> VerticalPlacement -> [VerticalPlacement] # enumFromThenTo :: VerticalPlacement -> VerticalPlacement -> VerticalPlacement -> [VerticalPlacement] #
Eq VerticalPlacement # |
Methods (==) :: VerticalPlacement -> VerticalPlacement -> Bool # (/=) :: VerticalPlacement -> VerticalPlacement -> Bool #
Ord VerticalPlacement # |
Methods compare :: VerticalPlacement -> VerticalPlacement -> Ordering # (<) :: VerticalPlacement -> VerticalPlacement -> Bool # (<=) :: VerticalPlacement -> VerticalPlacement -> Bool # (>) :: VerticalPlacement -> VerticalPlacement -> Bool # (>=) :: VerticalPlacement -> VerticalPlacement -> Bool # max :: VerticalPlacement -> VerticalPlacement -> VerticalPlacement # min :: VerticalPlacement -> VerticalPlacement -> VerticalPlacement #
Read VerticalPlacement # |
Methods readsPrec :: Int -> ReadS VerticalPlacement # readList :: ReadS [VerticalPlacement] # readPrec :: ReadPrec VerticalPlacement # readListPrec :: ReadPrec [VerticalPlacement] #
Show VerticalPlacement # |
Methods showsPrec :: Int -> VerticalPlacement -> ShowS # show :: VerticalPlacement -> String # showList :: [VerticalPlacement] -> ShowS #
ParseDot VerticalPlacement # |
Methods parseUnqt :: Parse VerticalPlacement # parse :: Parse VerticalPlacement # parseUnqtList :: Parse [VerticalPlacement] # parseList :: Parse [VerticalPlacement] #
PrintDot VerticalPlacement # |
Methods unqtDot :: VerticalPlacement -> DotCode # toDot :: VerticalPlacement -> DotCode # unqtListToDot :: [VerticalPlacement] -> DotCode # listToDot :: [VerticalPlacement] -> DotCode #

data LabelScheme #

How to treat a node whose name is of the form "`|edgelabel|*`" as a special node representing an edge label.

Constructors

NotEdgeLabel | No effect
CloseToCenter | Make node close to center of neighbor
CloseToOldCenter | Make node close to old center of neighbor
RemoveAndStraighten | Use a two-step process.

Instances

Bounded LabelScheme # |
Methods minBound :: LabelScheme # maxBound :: LabelScheme #
Enum LabelScheme # |
Methods succ :: LabelScheme -> LabelScheme # pred :: LabelScheme -> LabelScheme # toEnum :: Int -> LabelScheme # fromEnum :: LabelScheme -> Int # enumFrom :: LabelScheme -> [LabelScheme] # enumFromThen :: LabelScheme -> LabelScheme -> [LabelScheme] # enumFromTo :: LabelScheme -> LabelScheme -> [LabelScheme] # enumFromThenTo :: LabelScheme -> LabelScheme -> LabelScheme -> [LabelScheme] #
Eq LabelScheme # |
Methods (==) :: LabelScheme -> LabelScheme -> Bool # (/=) :: LabelScheme -> LabelScheme -> Bool #
Ord LabelScheme # |
Methods compare :: LabelScheme -> LabelScheme -> Ordering # (<) :: LabelScheme -> LabelScheme -> Bool # (<=) :: LabelScheme -> LabelScheme -> Bool # (>) :: LabelScheme -> LabelScheme -> Bool # (>=) :: LabelScheme -> LabelScheme -> Bool # max :: LabelScheme -> LabelScheme -> LabelScheme # min :: LabelScheme -> LabelScheme -> LabelScheme #
Read LabelScheme # |
Methods readsPrec :: Int -> ReadS LabelScheme # readList :: ReadS [LabelScheme] # readPrec :: ReadPrec LabelScheme # readListPrec :: ReadPrec [LabelScheme] #
Show LabelScheme # |
Methods showsPrec :: Int -> LabelScheme -> ShowS # show :: LabelScheme -> String # showList :: [LabelScheme] -> ShowS #
ParseDot LabelScheme # |
Methods parseUnqt :: Parse LabelScheme # parse :: Parse LabelScheme # parseUnqtList :: Parse [LabelScheme] # parseList :: Parse [LabelScheme] #
PrintDot LabelScheme # |
Methods unqtDot :: LabelScheme -> DotCode # toDot :: LabelScheme -> DotCode # unqtListToDot :: [LabelScheme] -> DotCode # listToDot :: [LabelScheme] -> DotCode #

data SVGFontNames #

The mapping used for `FontName` values in SVG output.

More information can be found at http://www.graphviz.org/doc/fontfaq.txt.

Constructors

SvgNames | Use the legal generic SVG font names.
PostScriptNames | Use PostScript font names.
FontConfigNames | Use fontconfig font conventions.

Instances

Bounded SVGFontNames # |
Methods minBound :: SVGFontNames # maxBound :: SVGFontNames #
Enum SVGFontNames # |
Methods succ :: SVGFontNames -> SVGFontNames # pred :: SVGFontNames -> SVGFontNames # toEnum :: Int -> SVGFontNames # fromEnum :: SVGFontNames -> Int # enumFrom :: SVGFontNames -> [SVGFontNames] # enumFromThen :: SVGFontNames -> SVGFontNames -> [SVGFontNames] # enumFromTo :: SVGFontNames -> SVGFontNames -> [SVGFontNames] # enumFromThenTo :: SVGFontNames -> SVGFontNames -> SVGFontNames -> [SVGFontNames] #
Eq SVGFontNames # |
Methods (==) :: SVGFontNames -> SVGFontNames -> Bool # (/=) :: SVGFontNames -> SVGFontNames -> Bool #
Ord SVGFontNames # |
Methods compare :: SVGFontNames -> SVGFontNames -> Ordering # (<) :: SVGFontNames -> SVGFontNames -> Bool # (<=) :: SVGFontNames -> SVGFontNames -> Bool # (>) :: SVGFontNames -> SVGFontNames -> Bool # (>=) :: SVGFontNames -> SVGFontNames -> Bool # max :: SVGFontNames -> SVGFontNames -> SVGFontNames # min :: SVGFontNames -> SVGFontNames -> SVGFontNames #
Read SVGFontNames # |
Methods readsPrec :: Int -> ReadS SVGFontNames # readList :: ReadS [SVGFontNames] # readPrec :: ReadPrec SVGFontNames # readListPrec :: ReadPrec [SVGFontNames] #
Show SVGFontNames # |
Methods showsPrec :: Int -> SVGFontNames -> ShowS # show :: SVGFontNames -> String # showList :: [SVGFontNames] -> ShowS #
ParseDot SVGFontNames # |
Methods parseUnqt :: Parse SVGFontNames # parse :: Parse SVGFontNames # parseUnqtList :: Parse [SVGFontNames] # parseList :: Parse [SVGFontNames] #
PrintDot SVGFontNames # |
Methods unqtDot :: SVGFontNames -> DotCode # toDot :: SVGFontNames -> DotCode # unqtListToDot :: [SVGFontNames] -> DotCode # listToDot :: [SVGFontNames] -> DotCode #

### Types representing the Dot grammar for records.

type RecordFields = [RecordField] #

A RecordFields value should never be empty.

data RecordField #

Specifies the sub-values of a record-based label. By default, the cells are laid out horizontally; use `FlipFields` to change the orientation of the fields (can be applied recursively). To change the default orientation, use `RankDir`.

Constructors

LabelledTarget PortName EscString |
PortName PortName | Will result in no label for that cell.
FieldLabel EscString |
FlipFields RecordFields |

Instances

Eq RecordField # |
Methods (==) :: RecordField -> RecordField -> Bool # (/=) :: RecordField -> RecordField -> Bool #
Ord RecordField # |
Methods compare :: RecordField -> RecordField -> Ordering # (<) :: RecordField -> RecordField -> Bool # (<=) :: RecordField -> RecordField -> Bool # (>) :: RecordField -> RecordField -> Bool # (>=) :: RecordField -> RecordField -> Bool # max :: RecordField -> RecordField -> RecordField # min :: RecordField -> RecordField -> RecordField #
Read RecordField # |
Methods readsPrec :: Int -> ReadS RecordField # readList :: ReadS [RecordField] # readPrec :: ReadPrec RecordField # readListPrec :: ReadPrec [RecordField] #
Show RecordField # |
Methods showsPrec :: Int -> RecordField -> ShowS # show :: RecordField -> String # showList :: [RecordField] -> ShowS #
ParseDot RecordField # |
Methods parseUnqt :: Parse RecordField # parse :: Parse RecordField # parseUnqtList :: Parse [RecordField] # parseList :: Parse [RecordField] #
PrintDot RecordField # |
Methods unqtDot :: RecordField -> DotCode # toDot :: RecordField -> DotCode # unqtListToDot :: [RecordField] -> DotCode # listToDot :: [RecordField] -> DotCode #
Labellable RecordField # |
Methods toLabelValue :: RecordField -> Label #
Labellable RecordFields # |
Methods toLabelValue :: RecordFields -> Label #

data Rect #

Should only have 2D points (i.e. created with `createPoint`).

Constructors

Rect Point Point |

Instances

Eq Rect # |
Methods (==) :: Rect -> Rect -> Bool # (/=) :: Rect -> Rect -> Bool #
Ord Rect # |
Methods compare :: Rect -> Rect -> Ordering # (<) :: Rect -> Rect -> Bool # (<=) :: Rect -> Rect -> Bool # (>) :: Rect -> Rect -> Bool # (>=) :: Rect -> Rect -> Bool # max :: Rect -> Rect -> Rect # min :: Rect -> Rect -> Rect #
Read Rect # |
Methods readsPrec :: Int -> ReadS Rect # readList :: ReadS [Rect] # readPrec :: ReadPrec Rect # readListPrec :: ReadPrec [Rect] #
Show Rect # |
Methods showsPrec :: Int -> Rect -> ShowS # show :: Rect -> String # showList :: [Rect] -> ShowS #
ParseDot Rect # |
Methods parseUnqt :: Parse Rect # parse :: Parse Rect # parseUnqtList :: Parse [Rect] # parseList :: Parse [Rect] #
PrintDot Rect # |
Methods unqtDot :: Rect -> DotCode # toDot :: Rect -> DotCode # unqtListToDot :: [Rect] -> DotCode # listToDot :: [Rect] -> DotCode #

data Justification #

Constructors

JLeft |
JRight |
JCenter |

Instances

Bounded Justification # |
Methods minBound :: Justification # maxBound :: Justification #
Enum Justification # |
Methods succ :: Justification -> Justification # pred :: Justification -> Justification # toEnum :: Int -> Justification # fromEnum :: Justification -> Int # enumFrom :: Justification -> [Justification] # enumFromThen :: Justification -> Justification -> [Justification] # enumFromTo :: Justification -> Justification -> [Justification] # enumFromThenTo :: Justification -> Justification -> Justification -> [Justification] #
Eq Justification # |
Methods (==) :: Justification -> Justification -> Bool # (/=) :: Justification -> Justification -> Bool #
Ord Justification # |
Methods compare :: Justification -> Justification -> Ordering # (<) :: Justification -> Justification -> Bool # (<=) :: Justification -> Justification -> Bool # (>) :: Justification -> Justification -> Bool # (>=) :: Justification -> Justification -> Bool # max :: Justification -> Justification -> Justification # min :: Justification -> Justification -> Justification #
Read Justification # |
Methods readsPrec :: Int -> ReadS Justification # readList :: ReadS [Justification] # readPrec :: ReadPrec Justification # readListPrec :: ReadPrec [Justification] #
Show Justification # |
Methods showsPrec :: Int -> Justification -> ShowS # show :: Justification -> String # showList :: [Justification] -> ShowS #
ParseDot Justification # |
Methods parseUnqt :: Parse Justification # parse :: Parse Justification # parseUnqtList :: Parse [Justification] # parseList :: Parse [Justification] #
PrintDot Justification # |
Methods unqtDot :: Justification -> DotCode # toDot :: Justification -> DotCode # unqtListToDot :: [Justification] -> DotCode # listToDot :: [Justification] -> DotCode #

## Nodes

data Shape #

Geometries of shapes are affected by the attributes `Regular`, `Peripheries` and `Orientation`.

Constructors

BoxShape | Has synonyms of rect and rectangle.
Polygon | Also affected by `Sides`, `Skew` and `Distortion`.
Ellipse | Has synonym of oval.
Circle |
PointShape | Only affected by `Peripheries`, `Width` and `Height`.
Egg |
Triangle |
PlainText | Has synonym of none. Recommended for `HtmlLabel`s.
DiamondShape |
Trapezium |
Parallelogram |
House |
Pentagon |
Hexagon |
Septagon |
Octagon |
DoubleCircle |
DoubleOctagon |
TripleOctagon |
InvTriangle |
InvTrapezium |
InvHouse |
MDiamond |
MSquare |
MCircle |
Square |
Star | Requires Graphviz >= 2.32.0.
Underline | Requires Graphviz >= 2.36.0.
Note |
Tab |
Folder |
Box3D |
Component |
Promoter | Requires Graphviz >= 2.30.0.
CDS | Requires Graphviz >= 2.30.0.
Terminator | Requires Graphviz >= 2.30.0.
UTR | Requires Graphviz >= 2.30.0.
PrimerSite | Requires Graphviz >= 2.30.0.
RestrictionSite | Requires Graphviz >= 2.30.0.
FivePovOverhang | Requires Graphviz >= 2.30.0.
ThreePovOverhang | Requires Graphviz >= 2.30.0.
NoOverhang | Requires Graphviz >= 2.30.0.
Assembly | Requires Graphviz >= 2.30.0.
Signature | Requires Graphviz >= 2.30.0.
Insulator | Requires Graphviz >= 2.30.0.
Ribosite | Requires Graphviz >= 2.30.0.
RNAStab | Requires Graphviz >= 2.30.0.
ProteaseSite | Requires Graphviz >= 2.30.0.
ProteinStab | Requires Graphviz >= 2.30.0.
RPromoter | Requires Graphviz >= 2.30.0.
RArrow | Requires Graphviz >= 2.30.0.
LArrow | Requires Graphviz >= 2.30.0.
LPromoter | Requires Graphviz >= 2.30.0.
Record | Must specify the record shape with a `Label`.
MRecord | Must specify the record shape with a `Label`.

Instances

Bounded Shape # |
Methods minBound :: Shape # maxBound :: Shape #
Enum Shape # |
Methods succ :: Shape -> Shape # pred :: Shape -> Shape # toEnum :: Int -> Shape # fromEnum :: Shape -> Int # enumFrom :: Shape -> [Shape] # enumFromThen :: Shape -> Shape -> [Shape] # enumFromTo :: Shape -> Shape -> [Shape] # enumFromThenTo :: Shape -> Shape -> Shape -> [Shape] #
Eq Shape # |
Methods (==) :: Shape -> Shape -> Bool # (/=) :: Shape -> Shape -> Bool #
Ord Shape # |
Methods compare :: Shape -> Shape -> Ordering # (<) :: Shape -> Shape -> Bool # (<=) :: Shape -> Shape -> Bool # (>) :: Shape -> Shape -> Bool # (>=) :: Shape -> Shape -> Bool # max :: Shape -> Shape -> Shape # min :: Shape -> Shape -> Shape #
Read Shape # |
Methods readsPrec :: Int -> ReadS Shape # readList :: ReadS [Shape] # readPrec :: ReadPrec Shape # readListPrec :: ReadPrec [Shape] #
Show Shape # |
Methods showsPrec :: Int -> Shape -> ShowS # show :: Shape -> String # showList :: [Shape] -> ShowS #
ParseDot Shape # |
Methods parseUnqt :: Parse Shape # parse :: Parse Shape # parseUnqtList :: Parse [Shape] # parseList :: Parse [Shape] #
PrintDot Shape # |
Methods unqtDot :: Shape -> DotCode # toDot :: Shape -> DotCode # unqtListToDot :: [Shape] -> DotCode # listToDot :: [Shape] -> DotCode #

newtype Paths #

A list of search paths.

Constructors

Paths |
Fields paths :: [FilePath]

Instances

Eq Paths # |
Methods (==) :: Paths -> Paths -> Bool # (/=) :: Paths -> Paths -> Bool #
Ord Paths # |
Methods compare :: Paths -> Paths -> Ordering # (<) :: Paths -> Paths -> Bool # (<=) :: Paths -> Paths -> Bool # (>) :: Paths -> Paths -> Bool # (>=) :: Paths -> Paths -> Bool # max :: Paths -> Paths -> Paths # min :: Paths -> Paths -> Paths #
Read Paths # |
Methods readsPrec :: Int -> ReadS Paths # readList :: ReadS [Paths] # readPrec :: ReadPrec Paths # readListPrec :: ReadPrec [Paths] #
Show Paths # |
Methods showsPrec :: Int -> Paths -> ShowS # show :: Paths -> String # showList :: [Paths] -> ShowS #
ParseDot Paths # |
Methods parseUnqt :: Parse Paths # parse :: Parse Paths # parseUnqtList :: Parse [Paths] # parseList :: Parse [Paths] #
PrintDot Paths # |
Methods unqtDot :: Paths -> DotCode # toDot :: Paths -> DotCode # unqtListToDot :: [Paths] -> DotCode # listToDot :: [Paths] -> DotCode #

data ScaleType #

Constructors

UniformScale |
NoScale |
FillWidth |
FillHeight |
FillBoth |

Instances

Bounded ScaleType # |
Methods minBound :: ScaleType # maxBound :: ScaleType #
Enum ScaleType # |
Methods succ :: ScaleType -> ScaleType # pred :: ScaleType -> ScaleType # toEnum :: Int -> ScaleType # fromEnum :: ScaleType -> Int # enumFrom :: ScaleType -> [ScaleType] # enumFromThen :: ScaleType -> ScaleType -> [ScaleType] # enumFromTo :: ScaleType -> ScaleType -> [ScaleType] # enumFromThenTo :: ScaleType -> ScaleType -> ScaleType -> [ScaleType] #
Eq ScaleType # |
Methods (==) :: ScaleType -> ScaleType -> Bool # (/=) :: ScaleType -> ScaleType -> Bool #
Ord ScaleType # |
Methods compare :: ScaleType -> ScaleType -> Ordering # (<) :: ScaleType -> ScaleType -> Bool # (<=) :: ScaleType -> ScaleType -> Bool # (>) :: ScaleType -> ScaleType -> Bool # (>=) :: ScaleType -> ScaleType -> Bool # max :: ScaleType -> ScaleType -> ScaleType # min :: ScaleType -> ScaleType -> ScaleType #
Read ScaleType # |
Methods readsPrec :: Int -> ReadS ScaleType # readList :: ReadS [ScaleType] # readPrec :: ReadPrec ScaleType # readListPrec :: ReadPrec [ScaleType] #
Show ScaleType # |
Methods showsPrec :: Int -> ScaleType -> ShowS # show :: ScaleType -> String # showList :: [ScaleType] -> ShowS #
ParseDot ScaleType # |
Methods parseUnqt :: Parse ScaleType # parse :: Parse ScaleType # parseUnqtList :: Parse [ScaleType] # parseList :: Parse [ScaleType] #
PrintDot ScaleType # |
Methods unqtDot :: ScaleType -> DotCode # toDot :: ScaleType -> DotCode # unqtListToDot :: [ScaleType] -> DotCode # listToDot :: [ScaleType] -> DotCode #

data NodeSize #

Determine how the `Width` and `Height` attributes specify the size of nodes.

Constructors

GrowAsNeeded | Nodes will be the smallest width and height needed to contain the label and any possible image. `Width` and `Height` are the minimum allowed sizes.
SetNodeSize | `Width` and `Height` dictate the size of the node with a warning if the label cannot fit in this.
SetShapeSize | `Width` and `Height` dictate the size of the shape only and the label can expand out of the shape (with a warning). Requires Graphviz >= 2.38.0.

Instances

Bounded NodeSize # |
Methods minBound :: NodeSize # maxBound :: NodeSize #
Enum NodeSize # |
Methods succ :: NodeSize -> NodeSize # pred :: NodeSize -> NodeSize # toEnum :: Int -> NodeSize # fromEnum :: NodeSize -> Int # enumFrom :: NodeSize -> [NodeSize] # enumFromThen :: NodeSize -> NodeSize -> [NodeSize] # enumFromTo :: NodeSize -> NodeSize -> [NodeSize] # enumFromThenTo :: NodeSize -> NodeSize -> NodeSize -> [NodeSize] #
Eq NodeSize # |
Methods (==) :: NodeSize -> NodeSize -> Bool # (/=) :: NodeSize -> NodeSize -> Bool #
Ord NodeSize # |
Methods compare :: NodeSize -> NodeSize -> Ordering # (<) :: NodeSize -> NodeSize -> Bool # (<=) :: NodeSize -> NodeSize -> Bool # (>) :: NodeSize -> NodeSize -> Bool # (>=) :: NodeSize -> NodeSize -> Bool # max :: NodeSize -> NodeSize -> NodeSize # min :: NodeSize -> NodeSize -> NodeSize #
Read NodeSize # |
Methods readsPrec :: Int -> ReadS NodeSize # readList :: ReadS [NodeSize] # readPrec :: ReadPrec NodeSize # readListPrec :: ReadPrec [NodeSize] #
Show NodeSize # |
Methods showsPrec :: Int -> NodeSize -> ShowS # show :: NodeSize -> String # showList :: [NodeSize] -> ShowS #
ParseDot NodeSize # |
Methods parseUnqt :: Parse NodeSize # parse :: Parse NodeSize # parseUnqtList :: Parse [NodeSize] # parseList :: Parse [NodeSize] #
PrintDot NodeSize # |
Methods unqtDot :: NodeSize -> DotCode # toDot :: NodeSize -> DotCode # unqtListToDot :: [NodeSize] -> DotCode # listToDot :: [NodeSize] -> DotCode #

## Edges

data DirType #

Specify where to place arrow heads on an edge.

Constructors

Forward | Draw a directed edge with an arrow to the node it's pointing go.
Back | Draw a reverse directed edge with an arrow to the node it's coming from.
Both | Draw arrows on both ends of the edge.
NoDir | Draw an undirected edge.

Instances

Bounded DirType # |
Methods minBound :: DirType # maxBound :: DirType #
Enum DirType # |
Methods succ :: DirType -> DirType # pred :: DirType -> DirType # toEnum :: Int -> DirType # fromEnum :: DirType -> Int # enumFrom :: DirType -> [DirType] # enumFromThen :: DirType -> DirType -> [DirType] # enumFromTo :: DirType -> DirType -> [DirType] # enumFromThenTo :: DirType -> DirType -> DirType -> [DirType] #
Eq DirType # |
Methods (==) :: DirType -> DirType -> Bool # (/=) :: DirType -> DirType -> Bool #
Ord DirType # |
Methods compare :: DirType -> DirType -> Ordering # (<) :: DirType -> DirType -> Bool # (<=) :: DirType -> DirType -> Bool # (>) :: DirType -> DirType -> Bool # (>=) :: DirType -> DirType -> Bool # max :: DirType -> DirType -> DirType # min :: DirType -> DirType -> DirType #
Read DirType # |
Methods readsPrec :: Int -> ReadS DirType # readList :: ReadS [DirType] # readPrec :: ReadPrec DirType # readListPrec :: ReadPrec [DirType] #
Show DirType # |
Methods showsPrec :: Int -> DirType -> ShowS # show :: DirType -> String # showList :: [DirType] -> ShowS #
ParseDot DirType # |
Methods parseUnqt :: Parse DirType # parse :: Parse DirType # parseUnqtList :: Parse [DirType] # parseList :: Parse [DirType] #
PrintDot DirType # |
Methods unqtDot :: DirType -> DotCode # toDot :: DirType -> DotCode # unqtListToDot :: [DirType] -> DotCode # listToDot :: [DirType] -> DotCode #

data EdgeType #

Controls how (and if) edges are represented.

For `Dot`, the default is `SplineEdges`; for all other layouts the default is `LineEdges`.

Constructors

SplineEdges | Except for `Dot`, requires non-overlapping nodes (see `Overlap`).
LineEdges |
NoEdges |
PolyLine |
Ortho | Does not handle ports or edge labels in `Dot`.
Curved | Requires Graphviz >= 2.30.0.
CompoundEdge | `Fdp` only

Instances

Bounded EdgeType # |
Methods minBound :: EdgeType # maxBound :: EdgeType #
Enum EdgeType # |
Methods succ :: EdgeType -> EdgeType # pred :: EdgeType -> EdgeType # toEnum :: Int -> EdgeType # fromEnum :: EdgeType -> Int # enumFrom :: EdgeType -> [EdgeType] # enumFromThen :: EdgeType -> EdgeType -> [EdgeType] # enumFromTo :: EdgeType -> EdgeType -> [EdgeType] # enumFromThenTo :: EdgeType -> EdgeType -> EdgeType -> [EdgeType] #
Eq EdgeType # |
Methods (==) :: EdgeType -> EdgeType -> Bool # (/=) :: EdgeType -> EdgeType -> Bool #
Ord EdgeType # |
Methods compare :: EdgeType -> EdgeType -> Ordering # (<) :: EdgeType -> EdgeType -> Bool # (<=) :: EdgeType -> EdgeType -> Bool # (>) :: EdgeType -> EdgeType -> Bool # (>=) :: EdgeType -> EdgeType -> Bool # max :: EdgeType -> EdgeType -> EdgeType # min :: EdgeType -> EdgeType -> EdgeType #
Read EdgeType # |
Methods readsPrec :: Int -> ReadS EdgeType # readList :: ReadS [EdgeType] # readPrec :: ReadPrec EdgeType # readListPrec :: ReadPrec [EdgeType] #
Show EdgeType # |
Methods showsPrec :: Int -> EdgeType -> ShowS # show :: EdgeType -> String # showList :: [EdgeType] -> ShowS #
ParseDot EdgeType # |
Methods parseUnqt :: Parse EdgeType # parse :: Parse EdgeType # parseUnqtList :: Parse [EdgeType] # parseList :: Parse [EdgeType] #
PrintDot EdgeType # |
Methods unqtDot :: EdgeType -> DotCode # toDot :: EdgeType -> DotCode # unqtListToDot :: [EdgeType] -> DotCode # listToDot :: [EdgeType] -> DotCode #

### Modifying where edges point

newtype PortName #

Specifies a name for ports (used also in record-based and HTML-like labels). Note that it is not valid for a `PortName` value to contain a colon (`:`) character; it is assumed that it doesn't.

Constructors

PN |
Fields portName :: Text

Instances

Eq PortName # |
Methods (==) :: PortName -> PortName -> Bool # (/=) :: PortName -> PortName -> Bool #
Ord PortName # |
Methods compare :: PortName -> PortName -> Ordering # (<) :: PortName -> PortName -> Bool # (<=) :: PortName -> PortName -> Bool # (>) :: PortName -> PortName -> Bool # (>=) :: PortName -> PortName -> Bool # max :: PortName -> PortName -> PortName # min :: PortName -> PortName -> PortName #
Read PortName # |
Methods readsPrec :: Int -> ReadS PortName # readList :: ReadS [PortName] # readPrec :: ReadPrec PortName # readListPrec :: ReadPrec [PortName] #
Show PortName # |
Methods showsPrec :: Int -> PortName -> ShowS # show :: PortName -> String # showList :: [PortName] -> ShowS #
ParseDot PortName # |
Methods parseUnqt :: Parse PortName # parse :: Parse PortName # parseUnqtList :: Parse [PortName] # parseList :: Parse [PortName] #
PrintDot PortName # |
Methods unqtDot :: PortName -> DotCode # toDot :: PortName -> DotCode # unqtListToDot :: [PortName] -> DotCode # listToDot :: [PortName] -> DotCode #
Labellable PortName # | A shorter variant than using `PortName` from `RecordField`.
Methods toLabelValue :: PortName -> Label #
Labellable (PortName, EscString) # | A shorter variant than using `LabelledTarget`.
Methods toLabelValue :: (PortName, EscString) -> Label #

data PortPos #

Constructors

LabelledPort PortName (Maybe CompassPoint) |
CompassPoint CompassPoint |

Instances

Eq PortPos # |
Methods (==) :: PortPos -> PortPos -> Bool # (/=) :: PortPos -> PortPos -> Bool #
Ord PortPos # |
Methods compare :: PortPos -> PortPos -> Ordering # (<) :: PortPos -> PortPos -> Bool # (<=) :: PortPos -> PortPos -> Bool # (>) :: PortPos -> PortPos -> Bool # (>=) :: PortPos -> PortPos -> Bool # max :: PortPos -> PortPos -> PortPos # min :: PortPos -> PortPos -> PortPos #
Read PortPos # |
Methods readsPrec :: Int -> ReadS PortPos # readList :: ReadS [PortPos] # readPrec :: ReadPrec PortPos # readListPrec :: ReadPrec [PortPos] #
Show PortPos # |
Methods showsPrec :: Int -> PortPos -> ShowS # show :: PortPos -> String # showList :: [PortPos] -> ShowS #
ParseDot PortPos # |
Methods parseUnqt :: Parse PortPos # parse :: Parse PortPos # parseUnqtList :: Parse [PortPos] # parseList :: Parse [PortPos] #
PrintDot PortPos # |
Methods unqtDot :: PortPos -> DotCode # toDot :: PortPos -> DotCode # unqtListToDot :: [PortPos] -> DotCode # listToDot :: [PortPos] -> DotCode #

data CompassPoint #

Constructors

North |
NorthEast |
East |
SouthEast |
South |
SouthWest |
West |
NorthWest |
CenterPoint |
NoCP |

Instances

Bounded CompassPoint # |
Methods minBound :: CompassPoint # maxBound :: CompassPoint #
Enum CompassPoint # |
Methods succ :: CompassPoint -> CompassPoint # pred :: CompassPoint -> CompassPoint # toEnum :: Int -> CompassPoint # fromEnum :: CompassPoint -> Int # enumFrom :: CompassPoint -> [CompassPoint] # enumFromThen :: CompassPoint -> CompassPoint -> [CompassPoint] # enumFromTo :: CompassPoint -> CompassPoint -> [CompassPoint] # enumFromThenTo :: CompassPoint -> CompassPoint -> CompassPoint -> [CompassPoint] #
Eq CompassPoint # |
Methods (==) :: CompassPoint -> CompassPoint -> Bool # (/=) :: CompassPoint -> CompassPoint -> Bool #
Ord CompassPoint # |
Methods compare :: CompassPoint -> CompassPoint -> Ordering # (<) :: CompassPoint -> CompassPoint -> Bool # (<=) :: CompassPoint -> CompassPoint -> Bool # (>) :: CompassPoint -> CompassPoint -> Bool # (>=) :: CompassPoint -> CompassPoint -> Bool # max :: CompassPoint -> CompassPoint -> CompassPoint # min :: CompassPoint -> CompassPoint -> CompassPoint #
Read CompassPoint # |
Methods readsPrec :: Int -> ReadS CompassPoint # readList :: ReadS [CompassPoint] # readPrec :: ReadPrec CompassPoint # readListPrec :: ReadPrec [CompassPoint] #
Show CompassPoint # |
Methods showsPrec :: Int -> CompassPoint -> ShowS # show :: CompassPoint -> String # showList :: [CompassPoint] -> ShowS #
ParseDot CompassPoint # |
Methods parseUnqt :: Parse CompassPoint # parse :: Parse CompassPoint # parseUnqtList :: Parse [CompassPoint] # parseList :: Parse [CompassPoint] #
PrintDot CompassPoint # |
Methods unqtDot :: CompassPoint -> DotCode # toDot :: CompassPoint -> DotCode # unqtListToDot :: [CompassPoint] -> DotCode # listToDot :: [CompassPoint] -> DotCode #

### Arrows

newtype ArrowType #

Dot has a basic grammar of arrow shapes which allows usage of up to 1,544,761 different shapes from 9 different basic `ArrowShape`s. Note that whilst an explicit list is used in the definition of `ArrowType`, there must be at least one tuple and a maximum of 4 (since that is what is required by Dot). For more information, see: http://graphviz.org/doc/info/arrows.html

The 19 basic arrows shown on the overall attributes page have been defined below as a convenience. Parsing of the 5 backward-compatible special cases is also supported.

Constructors

AType [(ArrowModifier, ArrowShape)] |

Instances

Eq ArrowType # |
Methods (==) :: ArrowType -> ArrowType -> Bool # (/=) :: ArrowType -> ArrowType -> Bool #
Ord ArrowType # |
Methods compare :: ArrowType -> ArrowType -> Ordering # (<) :: ArrowType -> ArrowType -> Bool # (<=) :: ArrowType -> ArrowType -> Bool # (>) :: ArrowType -> ArrowType -> Bool # (>=) :: ArrowType -> ArrowType -> Bool # max :: ArrowType -> ArrowType -> ArrowType # min :: ArrowType -> ArrowType -> ArrowType #
Read ArrowType # |
Methods readsPrec :: Int -> ReadS ArrowType # readList :: ReadS [ArrowType] # readPrec :: ReadPrec ArrowType # readListPrec :: ReadPrec [ArrowType] #
Show ArrowType # |
Methods showsPrec :: Int -> ArrowType -> ShowS # show :: ArrowType -> String # showList :: [ArrowType] -> ShowS #
ParseDot ArrowType # |
Methods parseUnqt :: Parse ArrowType # parse :: Parse ArrowType # parseUnqtList :: Parse [ArrowType] # parseList :: Parse [ArrowType] #
PrintDot ArrowType # |
Methods unqtDot :: ArrowType -> DotCode # toDot :: ArrowType -> DotCode # unqtListToDot :: [ArrowType] -> DotCode # listToDot :: [ArrowType] -> DotCode #

data ArrowShape #

Constructors

Box |
Crow |
Diamond |
DotArrow |
Inv |
NoArrow |
Normal |
Tee |
Vee |

Instances

Bounded ArrowShape # |
Methods minBound :: ArrowShape # maxBound :: ArrowShape #
Enum ArrowShape # |
Methods succ :: ArrowShape -> ArrowShape # pred :: ArrowShape -> ArrowShape # toEnum :: Int -> ArrowShape # fromEnum :: ArrowShape -> Int # enumFrom :: ArrowShape -> [ArrowShape] # enumFromThen :: ArrowShape -> ArrowShape -> [ArrowShape] # enumFromTo :: ArrowShape -> ArrowShape -> [ArrowShape] # enumFromThenTo :: ArrowShape -> ArrowShape -> ArrowShape -> [ArrowShape] #
Eq ArrowShape # |
Methods (==) :: ArrowShape -> ArrowShape -> Bool # (/=) :: ArrowShape -> ArrowShape -> Bool #
Ord ArrowShape # |
Methods compare :: ArrowShape -> ArrowShape -> Ordering # (<) :: ArrowShape -> ArrowShape -> Bool # (<=) :: ArrowShape -> ArrowShape -> Bool # (>) :: ArrowShape -> ArrowShape -> Bool # (>=) :: ArrowShape -> ArrowShape -> Bool # max :: ArrowShape -> ArrowShape -> ArrowShape # min :: ArrowShape -> ArrowShape -> ArrowShape #
Read ArrowShape # |
Methods readsPrec :: Int -> ReadS ArrowShape # readList :: ReadS [ArrowShape] # readPrec :: ReadPrec ArrowShape # readListPrec :: ReadPrec [ArrowShape] #
Show ArrowShape # |
Methods showsPrec :: Int -> ArrowShape -> ShowS # show :: ArrowShape -> String # showList :: [ArrowShape] -> ShowS #
ParseDot ArrowShape # |
Methods parseUnqt :: Parse ArrowShape # parse :: Parse ArrowShape # parseUnqtList :: Parse [ArrowShape] # parseList :: Parse [ArrowShape] #
PrintDot ArrowShape # |
Methods unqtDot :: ArrowShape -> DotCode # toDot :: ArrowShape -> DotCode # unqtListToDot :: [ArrowShape] -> DotCode # listToDot :: [ArrowShape] -> DotCode #

data ArrowModifier #

What modifications to apply to an `ArrowShape`.

Constructors

ArrMod |
Fields arrowFill :: ArrowFill arrowSide :: ArrowSide

Instances

Eq ArrowModifier # |
Methods (==) :: ArrowModifier -> ArrowModifier -> Bool # (/=) :: ArrowModifier -> ArrowModifier -> Bool #
Ord ArrowModifier # |
Methods compare :: ArrowModifier -> ArrowModifier -> Ordering # (<) :: ArrowModifier -> ArrowModifier -> Bool # (<=) :: ArrowModifier -> ArrowModifier -> Bool # (>) :: ArrowModifier -> ArrowModifier -> Bool # (>=) :: ArrowModifier -> ArrowModifier -> Bool # max :: ArrowModifier -> ArrowModifier -> ArrowModifier # min :: ArrowModifier -> ArrowModifier -> ArrowModifier #
Read ArrowModifier # |
Methods readsPrec :: Int -> ReadS ArrowModifier # readList :: ReadS [ArrowModifier] # readPrec :: ReadPrec ArrowModifier # readListPrec :: ReadPrec [ArrowModifier] #
Show ArrowModifier # |
Methods showsPrec :: Int -> ArrowModifier -> ShowS # show :: ArrowModifier -> String # showList :: [ArrowModifier] -> ShowS #
ParseDot ArrowModifier # |
Methods parseUnqt :: Parse ArrowModifier # parse :: Parse ArrowModifier # parseUnqtList :: Parse [ArrowModifier] # parseList :: Parse [ArrowModifier] #
PrintDot ArrowModifier # |
Methods unqtDot :: ArrowModifier -> DotCode # toDot :: ArrowModifier -> DotCode # unqtListToDot :: [ArrowModifier] -> DotCode # listToDot :: [ArrowModifier] -> DotCode #

data ArrowFill #

Constructors

OpenArrow |
FilledArrow |

Instances

Bounded ArrowFill # |
Methods minBound :: ArrowFill # maxBound :: ArrowFill #
Enum ArrowFill # |
Methods succ :: ArrowFill -> ArrowFill # pred :: ArrowFill -> ArrowFill # toEnum :: Int -> ArrowFill # fromEnum :: ArrowFill -> Int # enumFrom :: ArrowFill -> [ArrowFill] # enumFromThen :: ArrowFill -> ArrowFill -> [ArrowFill] # enumFromTo :: ArrowFill -> ArrowFill -> [ArrowFill] # enumFromThenTo :: ArrowFill -> ArrowFill -> ArrowFill -> [ArrowFill] #
Eq ArrowFill # |
Methods (==) :: ArrowFill -> ArrowFill -> Bool # (/=) :: ArrowFill -> ArrowFill -> Bool #
Ord ArrowFill # |
Methods compare :: ArrowFill -> ArrowFill -> Ordering # (<) :: ArrowFill -> ArrowFill -> Bool # (<=) :: ArrowFill -> ArrowFill -> Bool # (>) :: ArrowFill -> ArrowFill -> Bool # (>=) :: ArrowFill -> ArrowFill -> Bool # max :: ArrowFill -> ArrowFill -> ArrowFill # min :: ArrowFill -> ArrowFill -> ArrowFill #
Read ArrowFill # |
Methods readsPrec :: Int -> ReadS ArrowFill # readList :: ReadS [ArrowFill] # readPrec :: ReadPrec ArrowFill # readListPrec :: ReadPrec [ArrowFill] #
Show ArrowFill # |
Methods showsPrec :: Int -> ArrowFill -> ShowS # show :: ArrowFill -> String # showList :: [ArrowFill] -> ShowS #
ParseDot ArrowFill # |
Methods parseUnqt :: Parse ArrowFill # parse :: Parse ArrowFill # parseUnqtList :: Parse [ArrowFill] # parseList :: Parse [ArrowFill] #
PrintDot ArrowFill # |
Methods unqtDot :: ArrowFill -> DotCode # toDot :: ArrowFill -> DotCode # unqtListToDot :: [ArrowFill] -> DotCode # listToDot :: [ArrowFill] -> DotCode #

data ArrowSide #

Represents which side (when looking towards the node the arrow is pointing to) is drawn.

Constructors

LeftSide |
RightSide |
BothSides |

Instances

Bounded ArrowSide # |
Methods minBound :: ArrowSide # maxBound :: ArrowSide #
Enum ArrowSide # |
Methods succ :: ArrowSide -> ArrowSide # pred :: ArrowSide -> ArrowSide # toEnum :: Int -> ArrowSide # fromEnum :: ArrowSide -> Int # enumFrom :: ArrowSide -> [ArrowSide] # enumFromThen :: ArrowSide -> ArrowSide -> [ArrowSide] # enumFromTo :: ArrowSide -> ArrowSide -> [ArrowSide] # enumFromThenTo :: ArrowSide -> ArrowSide -> ArrowSide -> [ArrowSide] #
Eq ArrowSide # |
Methods (==) :: ArrowSide -> ArrowSide -> Bool # (/=) :: ArrowSide -> ArrowSide -> Bool #
Ord ArrowSide # |
Methods compare :: ArrowSide -> ArrowSide -> Ordering # (<) :: ArrowSide -> ArrowSide -> Bool # (<=) :: ArrowSide -> ArrowSide -> Bool # (>) :: ArrowSide -> ArrowSide -> Bool # (>=) :: ArrowSide -> ArrowSide -> Bool # max :: ArrowSide -> ArrowSide -> ArrowSide # min :: ArrowSide -> ArrowSide -> ArrowSide #
Read ArrowSide # |
Methods readsPrec :: Int -> ReadS ArrowSide # readList :: ReadS [ArrowSide] # readPrec :: ReadPrec ArrowSide # readListPrec :: ReadPrec [ArrowSide] #
Show ArrowSide # |
Methods showsPrec :: Int -> ArrowSide -> ShowS # show :: ArrowSide -> String # showList :: [ArrowSide] -> ShowS #
ParseDot ArrowSide # |
Methods parseUnqt :: Parse ArrowSide # parse :: Parse ArrowSide # parseUnqtList :: Parse [ArrowSide] # parseList :: Parse [ArrowSide] #
PrintDot ArrowSide # |
Methods unqtDot :: ArrowSide -> DotCode # toDot :: ArrowSide -> DotCode # unqtListToDot :: [ArrowSide] -> DotCode # listToDot :: [ArrowSide] -> DotCode #

#### `ArrowModifier` values

noMods :: ArrowModifier #

Apply no modifications to an `ArrowShape`.

openMod :: ArrowModifier #

`OpenArrow` and `BothSides`

## Positioning

data Point #

Constructors

Point |
Fields xCoord :: Double yCoord :: Double zCoord :: Maybe Double Can only be `Just` for ``Dim` 3` or greater. forcePos :: Bool Input to Graphviz only: specify that the node position should not change.

Instances

Eq Point # |
Methods (==) :: Point -> Point -> Bool # (/=) :: Point -> Point -> Bool #
Ord Point # |
Methods compare :: Point -> Point -> Ordering # (<) :: Point -> Point -> Bool # (<=) :: Point -> Point -> Bool # (>) :: Point -> Point -> Bool # (>=) :: Point -> Point -> Bool # max :: Point -> Point -> Point # min :: Point -> Point -> Point #
Read Point # |
Methods readsPrec :: Int -> ReadS Point # readList :: ReadS [Point] # readPrec :: ReadPrec Point # readListPrec :: ReadPrec [Point] #
Show Point # |
Methods showsPrec :: Int -> Point -> ShowS # show :: Point -> String # showList :: [Point] -> ShowS #
ParseDot Point # |
Methods parseUnqt :: Parse Point # parse :: Parse Point # parseUnqtList :: Parse [Point] # parseList :: Parse [Point] #
PrintDot Point # |
Methods unqtDot :: Point -> DotCode # toDot :: Point -> DotCode # unqtListToDot :: [Point] -> DotCode # listToDot :: [Point] -> DotCode #

createPoint :: Double -> Double -> Point #

Create a point with only `x` and `y` values.

data Pos #

Constructors

PointPos Point |
SplinePos [Spline] |

Instances

Eq Pos # |
Methods (==) :: Pos -> Pos -> Bool # (/=) :: Pos -> Pos -> Bool #
Ord Pos # |
Methods compare :: Pos -> Pos -> Ordering # (<) :: Pos -> Pos -> Bool # (<=) :: Pos -> Pos -> Bool # (>) :: Pos -> Pos -> Bool # (>=) :: Pos -> Pos -> Bool # max :: Pos -> Pos -> Pos # min :: Pos -> Pos -> Pos #
Read Pos # |
Methods readsPrec :: Int -> ReadS Pos # readList :: ReadS [Pos] # readPrec :: ReadPrec Pos # readListPrec :: ReadPrec [Pos] #
Show Pos # |
Methods showsPrec :: Int -> Pos -> ShowS # show :: Pos -> String # showList :: [Pos] -> ShowS #
ParseDot Pos # |
Methods parseUnqt :: Parse Pos # parse :: Parse Pos # parseUnqtList :: Parse [Pos] # parseList :: Parse [Pos] #
PrintDot Pos # |
Methods unqtDot :: Pos -> DotCode # toDot :: Pos -> DotCode # unqtListToDot :: [Pos] -> DotCode # listToDot :: [Pos] -> DotCode #

data Spline #

The number of points in the list must be equivalent to 1 mod 3; note that this is not checked.

Constructors

Spline |
Fields endPoint :: Maybe Point startPoint :: Maybe Point splinePoints :: [Point]

Instances

Eq Spline # |
Methods (==) :: Spline -> Spline -> Bool # (/=) :: Spline -> Spline -> Bool #
Ord Spline # |
Methods compare :: Spline -> Spline -> Ordering # (<) :: Spline -> Spline -> Bool # (<=) :: Spline -> Spline -> Bool # (>) :: Spline -> Spline -> Bool # (>=) :: Spline -> Spline -> Bool # max :: Spline -> Spline -> Spline # min :: Spline -> Spline -> Spline #
Read Spline # |
Methods readsPrec :: Int -> ReadS Spline # readList :: ReadS [Spline] # readPrec :: ReadPrec Spline # readListPrec :: ReadPrec [Spline] #
Show Spline # |
Methods showsPrec :: Int -> Spline -> ShowS # show :: Spline -> String # showList :: [Spline] -> ShowS #
ParseDot Spline # |
Methods parseUnqt :: Parse Spline # parse :: Parse Spline # parseUnqtList :: Parse [Spline] # parseList :: Parse [Spline] #
PrintDot Spline # |
Methods unqtDot :: Spline -> DotCode # toDot :: Spline -> DotCode # unqtListToDot :: [Spline] -> DotCode # listToDot :: [Spline] -> DotCode #

data DPoint #

Either a `Double` or a (2D) `Point` (i.e. created with `createPoint`).

Whilst it is possible to create a `Point` value with either a third co-ordinate or a forced position, these are ignored for printing/parsing.

An optional prefix of `'+'` is allowed when parsing.

Constructors

DVal Double |
PVal Point |

Instances

Eq DPoint # |
Methods (==) :: DPoint -> DPoint -> Bool # (/=) :: DPoint -> DPoint -> Bool #
Ord DPoint # |
Methods compare :: DPoint -> DPoint -> Ordering # (<) :: DPoint -> DPoint -> Bool # (<=) :: DPoint -> DPoint -> Bool # (>) :: DPoint -> DPoint -> Bool # (>=) :: DPoint -> DPoint -> Bool # max :: DPoint -> DPoint -> DPoint # min :: DPoint -> DPoint -> DPoint #
Read DPoint # |
Methods readsPrec :: Int -> ReadS DPoint # readList :: ReadS [DPoint] # readPrec :: ReadPrec DPoint # readListPrec :: ReadPrec [DPoint] #
Show DPoint # |
Methods showsPrec :: Int -> DPoint -> ShowS # show :: DPoint -> String # showList :: [DPoint] -> ShowS #
ParseDot DPoint # |
Methods parseUnqt :: Parse DPoint # parse :: Parse DPoint # parseUnqtList :: Parse [DPoint] # parseList :: Parse [DPoint] #
PrintDot DPoint # |
Methods unqtDot :: DPoint -> DotCode # toDot :: DPoint -> DotCode # unqtListToDot :: [DPoint] -> DotCode # listToDot :: [DPoint] -> DotCode #

data Normalized #

If set, normalizes coordinates such that the first point is at the origin and the first edge is at the angle if specified.

Constructors

IsNormalized | Equivalent to ``NormalizedAngle` 0`.
NotNormalized |
NormalizedAngle Double | Angle of first edge when normalized. Requires Graphviz >= 2.32.0.

Instances

Eq Normalized # |
Methods (==) :: Normalized -> Normalized -> Bool # (/=) :: Normalized -> Normalized -> Bool #
Ord Normalized # |
Methods compare :: Normalized -> Normalized -> Ordering # (<) :: Normalized -> Normalized -> Bool # (<=) :: Normalized -> Normalized -> Bool # (>) :: Normalized -> Normalized -> Bool # (>=) :: Normalized -> Normalized -> Bool # max :: Normalized -> Normalized -> Normalized # min :: Normalized -> Normalized -> Normalized #
Read Normalized # |
Methods readsPrec :: Int -> ReadS Normalized # readList :: ReadS [Normalized] # readPrec :: ReadPrec Normalized # readListPrec :: ReadPrec [Normalized] #
Show Normalized # |
Methods showsPrec :: Int -> Normalized -> ShowS # show :: Normalized -> String # showList :: [Normalized] -> ShowS #
ParseDot Normalized # |
Methods parseUnqt :: Parse Normalized # parse :: Parse Normalized # parseUnqtList :: Parse [Normalized] # parseList :: Parse [Normalized] #
PrintDot Normalized # |
Methods unqtDot :: Normalized -> DotCode # toDot :: Normalized -> DotCode # unqtListToDot :: [Normalized] -> DotCode # listToDot :: [Normalized] -> DotCode #

## Layout

data GraphvizCommand #

The available Graphviz commands. The following directions are based upon those in the Graphviz man page (available online at http://graphviz.org/pdf/dot.1.pdf, or if installed on your system `man graphviz`). Note that any command can be used on both directed and undirected graphs.

When used with the `Layout` attribute, it overrides any actual command called on the dot graph.

Constructors

Dot | For hierachical graphs (ideal for directed graphs).
Neato | For symmetric layouts of graphs (ideal for undirected graphs).
TwoPi | For radial layout of graphs.
Circo | For circular layout of graphs.
Fdp | Spring-model approach for undirected graphs.
Sfdp | As with Fdp, but ideal for large graphs.
Osage | Filter for drawing clustered graphs, requires Graphviz >= 2.28.0.
Patchwork | Draw clustered graphs as treemaps, requires Graphviz >= 2.28.0.

Instances

Bounded GraphvizCommand # |
Methods minBound :: GraphvizCommand # maxBound :: GraphvizCommand #
Enum GraphvizCommand # |
Methods succ :: GraphvizCommand -> GraphvizCommand # pred :: GraphvizCommand -> GraphvizCommand # toEnum :: Int -> GraphvizCommand # fromEnum :: GraphvizCommand -> Int # enumFrom :: GraphvizCommand -> [GraphvizCommand] # enumFromThen :: GraphvizCommand -> GraphvizCommand -> [GraphvizCommand] # enumFromTo :: GraphvizCommand -> GraphvizCommand -> [GraphvizCommand] # enumFromThenTo :: GraphvizCommand -> GraphvizCommand -> GraphvizCommand -> [GraphvizCommand] #
Eq GraphvizCommand # |
Methods (==) :: GraphvizCommand -> GraphvizCommand -> Bool # (/=) :: GraphvizCommand -> GraphvizCommand -> Bool #
Ord GraphvizCommand # |
Methods compare :: GraphvizCommand -> GraphvizCommand -> Ordering # (<) :: GraphvizCommand -> GraphvizCommand -> Bool # (<=) :: GraphvizCommand -> GraphvizCommand -> Bool # (>) :: GraphvizCommand -> GraphvizCommand -> Bool # (>=) :: GraphvizCommand -> GraphvizCommand -> Bool # max :: GraphvizCommand -> GraphvizCommand -> GraphvizCommand # min :: GraphvizCommand -> GraphvizCommand -> GraphvizCommand #
Read GraphvizCommand # |
Methods readsPrec :: Int -> ReadS GraphvizCommand # readList :: ReadS [GraphvizCommand] # readPrec :: ReadPrec GraphvizCommand # readListPrec :: ReadPrec [GraphvizCommand] #
Show GraphvizCommand # |
Methods showsPrec :: Int -> GraphvizCommand -> ShowS # show :: GraphvizCommand -> String # showList :: [GraphvizCommand] -> ShowS #
ParseDot GraphvizCommand # |
Methods parseUnqt :: Parse GraphvizCommand # parse :: Parse GraphvizCommand # parseUnqtList :: Parse [GraphvizCommand] # parseList :: Parse [GraphvizCommand] #
PrintDot GraphvizCommand # |
Methods unqtDot :: GraphvizCommand -> DotCode # toDot :: GraphvizCommand -> DotCode # unqtListToDot :: [GraphvizCommand] -> DotCode # listToDot :: [GraphvizCommand] -> DotCode #

data GraphSize #

Maximum width and height of drawing in inches.

Constructors

GSize |
Fields width :: Double height :: Maybe Double If `Nothing`, then the height is the same as the width. desiredSize :: Bool If drawing is smaller than specified size, this value determines whether it is scaled up.

Instances

Eq GraphSize # |
Methods (==) :: GraphSize -> GraphSize -> Bool # (/=) :: GraphSize -> GraphSize -> Bool #
Ord GraphSize # |
Methods compare :: GraphSize -> GraphSize -> Ordering # (<) :: GraphSize -> GraphSize -> Bool # (<=) :: GraphSize -> GraphSize -> Bool # (>) :: GraphSize -> GraphSize -> Bool # (>=) :: GraphSize -> GraphSize -> Bool # max :: GraphSize -> GraphSize -> GraphSize # min :: GraphSize -> GraphSize -> GraphSize #
Read GraphSize # |
Methods readsPrec :: Int -> ReadS GraphSize # readList :: ReadS [GraphSize] # readPrec :: ReadPrec GraphSize # readListPrec :: ReadPrec [GraphSize] #
Show GraphSize # |
Methods showsPrec :: Int -> GraphSize -> ShowS # show :: GraphSize -> String # showList :: [GraphSize] -> ShowS #
ParseDot GraphSize # |
Methods parseUnqt :: Parse GraphSize # parse :: Parse GraphSize # parseUnqtList :: Parse [GraphSize] # parseList :: Parse [GraphSize] #
PrintDot GraphSize # |
Methods unqtDot :: GraphSize -> DotCode # toDot :: GraphSize -> DotCode # unqtListToDot :: [GraphSize] -> DotCode # listToDot :: [GraphSize] -> DotCode #

data ClusterMode #

If `Local`, then sub-graphs that are clusters are given special treatment. `Global` and `NoCluster` currently appear to be identical and turn off the special cluster processing.

Constructors

Local |
Global |
NoCluster |

Instances

Bounded ClusterMode # |
Methods minBound :: ClusterMode # maxBound :: ClusterMode #
Enum ClusterMode # |
Methods succ :: ClusterMode -> ClusterMode # pred :: ClusterMode -> ClusterMode # toEnum :: Int -> ClusterMode # fromEnum :: ClusterMode -> Int # enumFrom :: ClusterMode -> [ClusterMode] # enumFromThen :: ClusterMode -> ClusterMode -> [ClusterMode] # enumFromTo :: ClusterMode -> ClusterMode -> [ClusterMode] # enumFromThenTo :: ClusterMode -> ClusterMode -> ClusterMode -> [ClusterMode] #
Eq ClusterMode # |
Methods (==) :: ClusterMode -> ClusterMode -> Bool # (/=) :: ClusterMode -> ClusterMode -> Bool #
Ord ClusterMode # |
Methods compare :: ClusterMode -> ClusterMode -> Ordering # (<) :: ClusterMode -> ClusterMode -> Bool # (<=) :: ClusterMode -> ClusterMode -> Bool # (>) :: ClusterMode -> ClusterMode -> Bool # (>=) :: ClusterMode -> ClusterMode -> Bool # max :: ClusterMode -> ClusterMode -> ClusterMode # min :: ClusterMode -> ClusterMode -> ClusterMode #
Read ClusterMode # |
Methods readsPrec :: Int -> ReadS ClusterMode # readList :: ReadS [ClusterMode] # readPrec :: ReadPrec ClusterMode # readListPrec :: ReadPrec [ClusterMode] #
Show ClusterMode # |
Methods showsPrec :: Int -> ClusterMode -> ShowS # show :: ClusterMode -> String # showList :: [ClusterMode] -> ShowS #
ParseDot ClusterMode # |
Methods parseUnqt :: Parse ClusterMode # parse :: Parse ClusterMode # parseUnqtList :: Parse [ClusterMode] # parseList :: Parse [ClusterMode] #
PrintDot ClusterMode # |
Methods unqtDot :: ClusterMode -> DotCode # toDot :: ClusterMode -> DotCode # unqtListToDot :: [ClusterMode] -> DotCode # listToDot :: [ClusterMode] -> DotCode #

data Model #

Constructors

ShortPath |
SubSet |
Circuit |
MDS |

Instances

Bounded Model # |
Methods minBound :: Model # maxBound :: Model #
Enum Model # |
Methods succ :: Model -> Model # pred :: Model -> Model # toEnum :: Int -> Model # fromEnum :: Model -> Int # enumFrom :: Model -> [Model] # enumFromThen :: Model -> Model -> [Model] # enumFromTo :: Model -> Model -> [Model] # enumFromThenTo :: Model -> Model -> Model -> [Model] #
Eq Model # |
Methods (==) :: Model -> Model -> Bool # (/=) :: Model -> Model -> Bool #
Ord Model # |
Methods compare :: Model -> Model -> Ordering # (<) :: Model -> Model -> Bool # (<=) :: Model -> Model -> Bool # (>) :: Model -> Model -> Bool # (>=) :: Model -> Model -> Bool # max :: Model -> Model -> Model # min :: Model -> Model -> Model #
Read Model # |
Methods readsPrec :: Int -> ReadS Model # readList :: ReadS [Model] # readPrec :: ReadPrec Model # readListPrec :: ReadPrec [Model] #
Show Model # |
Methods showsPrec :: Int -> Model -> ShowS # show :: Model -> String # showList :: [Model] -> ShowS #
ParseDot Model # |
Methods parseUnqt :: Parse Model # parse :: Parse Model # parseUnqtList :: Parse [Model] # parseList :: Parse [Model] #
PrintDot Model # |
Methods unqtDot :: Model -> DotCode # toDot :: Model -> DotCode # unqtListToDot :: [Model] -> DotCode # listToDot :: [Model] -> DotCode #

data Overlap #

How to deal with node overlaps.

Defaults to `KeepOverlaps` except for `Fdp` and `Sfdp`.

The ability to specify the number of tries for `Fdp'`s initial force-directed technique is not supported (by default, `Fdp` uses `9` passes of its in-built technique, and then ``PrismOverlap` Nothing`).

For `Sfdp`, the default is ``PrismOverlap` (Just 0)`.

Constructors

KeepOverlaps |
ScaleOverlaps | Remove overlaps by uniformly scaling in x and y.
ScaleXYOverlaps | Remove overlaps by separately scaling x and y.
PrismOverlap (Maybe Word16) | Requires the Prism library to be available (if not, this is equivalent to `VoronoiOverlap`). ``Nothing`` is equivalent to ``Just` 1000`. Influenced by `OverlapScaling`.
VoronoiOverlap | Requires Graphviz >= 2.30.0.
CompressOverlap | Scale layout down as much as possible without introducing overlaps, assuming none to begin with.
VpscOverlap | Uses quadratic optimization to minimize node displacement.
IpsepOverlap | Only when `mode == `IpSep``

Instances

Eq Overlap # |
Methods (==) :: Overlap -> Overlap -> Bool # (/=) :: Overlap -> Overlap -> Bool #
Ord Overlap # |
Methods compare :: Overlap -> Overlap -> Ordering # (<) :: Overlap -> Overlap -> Bool # (<=) :: Overlap -> Overlap -> Bool # (>) :: Overlap -> Overlap -> Bool # (>=) :: Overlap -> Overlap -> Bool # max :: Overlap -> Overlap -> Overlap # min :: Overlap -> Overlap -> Overlap #
Read Overlap # |
Methods readsPrec :: Int -> ReadS Overlap # readList :: ReadS [Overlap] # readPrec :: ReadPrec Overlap # readListPrec :: ReadPrec [Overlap] #
Show Overlap # |
Methods showsPrec :: Int -> Overlap -> ShowS # show :: Overlap -> String # showList :: [Overlap] -> ShowS #
ParseDot Overlap # | Note that `overlap=false` defaults to ``PrismOverlap` Nothing`, but if the Prism library isn't available then it is equivalent to `VoronoiOverlap`.
Methods parseUnqt :: Parse Overlap # parse :: Parse Overlap # parseUnqtList :: Parse [Overlap] # parseList :: Parse [Overlap] #
PrintDot Overlap # |
Methods unqtDot :: Overlap -> DotCode # toDot :: Overlap -> DotCode # unqtListToDot :: [Overlap] -> DotCode # listToDot :: [Overlap] -> DotCode #

data Root #

Specify the root node either as a Node attribute or a Graph attribute.

Constructors

IsCentral | For Nodes only
NotCentral | For Nodes only
NodeName Text | For Graphs only

Instances

Eq Root # |
Methods (==) :: Root -> Root -> Bool # (/=) :: Root -> Root -> Bool #
Ord Root # |
Methods compare :: Root -> Root -> Ordering # (<) :: Root -> Root -> Bool # (<=) :: Root -> Root -> Bool # (>) :: Root -> Root -> Bool # (>=) :: Root -> Root -> Bool # max :: Root -> Root -> Root # min :: Root -> Root -> Root #
Read Root # |
Methods readsPrec :: Int -> ReadS Root # readList :: ReadS [Root] # readPrec :: ReadPrec Root # readListPrec :: ReadPrec [Root] #
Show Root # |
Methods showsPrec :: Int -> Root -> ShowS # show :: Root -> String # showList :: [Root] -> ShowS #
ParseDot Root # |
Methods parseUnqt :: Parse Root # parse :: Parse Root # parseUnqtList :: Parse [Root] # parseList :: Parse [Root] #
PrintDot Root # |
Methods unqtDot :: Root -> DotCode # toDot :: Root -> DotCode # unqtListToDot :: [Root] -> DotCode # listToDot :: [Root] -> DotCode #

data Order #

Constructors

OutEdges | Draw outgoing edges in order specified.
InEdges | Draw incoming edges in order specified.

Instances

Bounded Order # |
Methods minBound :: Order # maxBound :: Order #
Enum Order # |
Methods succ :: Order -> Order # pred :: Order -> Order # toEnum :: Int -> Order # fromEnum :: Order -> Int # enumFrom :: Order -> [Order] # enumFromThen :: Order -> Order -> [Order] # enumFromTo :: Order -> Order -> [Order] # enumFromThenTo :: Order -> Order -> Order -> [Order] #
Eq Order # |
Methods (==) :: Order -> Order -> Bool # (/=) :: Order -> Order -> Bool #
Ord Order # |
Methods compare :: Order -> Order -> Ordering # (<) :: Order -> Order -> Bool # (<=) :: Order -> Order -> Bool # (>) :: Order -> Order -> Bool # (>=) :: Order -> Order -> Bool # max :: Order -> Order -> Order # min :: Order -> Order -> Order #
Read Order # |
Methods readsPrec :: Int -> ReadS Order # readList :: ReadS [Order] # readPrec :: ReadPrec Order # readListPrec :: ReadPrec [Order] #
Show Order # |
Methods showsPrec :: Int -> Order -> ShowS # show :: Order -> String # showList :: [Order] -> ShowS #
ParseDot Order # |
Methods parseUnqt :: Parse Order # parse :: Parse Order # parseUnqtList :: Parse [Order] # parseList :: Parse [Order] #
PrintDot Order # |
Methods unqtDot :: Order -> DotCode # toDot :: Order -> DotCode # unqtListToDot :: [Order] -> DotCode # listToDot :: [Order] -> DotCode #

data OutputMode #

Constructors

BreadthFirst |
NodesFirst |
EdgesFirst |

Instances

Bounded OutputMode # |
Methods minBound :: OutputMode # maxBound :: OutputMode #
Enum OutputMode # |
Methods succ :: OutputMode -> OutputMode # pred :: OutputMode -> OutputMode # toEnum :: Int -> OutputMode # fromEnum :: OutputMode -> Int # enumFrom :: OutputMode -> [OutputMode] # enumFromThen :: OutputMode -> OutputMode -> [OutputMode] # enumFromTo :: OutputMode -> OutputMode -> [OutputMode] # enumFromThenTo :: OutputMode -> OutputMode -> OutputMode -> [OutputMode] #
Eq OutputMode # |
Methods (==) :: OutputMode -> OutputMode -> Bool # (/=) :: OutputMode -> OutputMode -> Bool #
Ord OutputMode # |
Methods compare :: OutputMode -> OutputMode -> Ordering # (<) :: OutputMode -> OutputMode -> Bool # (<=) :: OutputMode -> OutputMode -> Bool # (>) :: OutputMode -> OutputMode -> Bool # (>=) :: OutputMode -> OutputMode -> Bool # max :: OutputMode -> OutputMode -> OutputMode # min :: OutputMode -> OutputMode -> OutputMode #
Read OutputMode # |
Methods readsPrec :: Int -> ReadS OutputMode # readList :: ReadS [OutputMode] # readPrec :: ReadPrec OutputMode # readListPrec :: ReadPrec [OutputMode] #
Show OutputMode # |
Methods showsPrec :: Int -> OutputMode -> ShowS # show :: OutputMode -> String # showList :: [OutputMode] -> ShowS #
ParseDot OutputMode # |
Methods parseUnqt :: Parse OutputMode # parse :: Parse OutputMode # parseUnqtList :: Parse [OutputMode] # parseList :: Parse [OutputMode] #
PrintDot OutputMode # |
Methods unqtDot :: OutputMode -> DotCode # toDot :: OutputMode -> DotCode # unqtListToDot :: [OutputMode] -> DotCode # listToDot :: [OutputMode] -> DotCode #

data Pack #

Constructors

DoPack |
DontPack |
PackMargin Int | If non-negative, then packs; otherwise doesn't.

Instances

Eq Pack # |
Methods (==) :: Pack -> Pack -> Bool # (/=) :: Pack -> Pack -> Bool #
Ord Pack # |
Methods compare :: Pack -> Pack -> Ordering # (<) :: Pack -> Pack -> Bool # (<=) :: Pack -> Pack -> Bool # (>) :: Pack -> Pack -> Bool # (>=) :: Pack -> Pack -> Bool # max :: Pack -> Pack -> Pack # min :: Pack -> Pack -> Pack #
Read Pack # |
Methods readsPrec :: Int -> ReadS Pack # readList :: ReadS [Pack] # readPrec :: ReadPrec Pack # readListPrec :: ReadPrec [Pack] #
Show Pack # |
Methods showsPrec :: Int -> Pack -> ShowS # show :: Pack -> String # showList :: [Pack] -> ShowS #
ParseDot Pack # |
Methods parseUnqt :: Parse Pack # parse :: Parse Pack # parseUnqtList :: Parse [Pack] # parseList :: Parse [Pack] #
PrintDot Pack # |
Methods unqtDot :: Pack -> DotCode # toDot :: Pack -> DotCode # unqtListToDot :: [Pack] -> DotCode # listToDot :: [Pack] -> DotCode #

data PackMode #

Constructors

PackNode |
PackClust |
PackGraph |
PackArray Bool Bool (Maybe Int) | Sort by cols, sort by user, number of rows/cols

Instances

Eq PackMode # |
Methods (==) :: PackMode -> PackMode -> Bool # (/=) :: PackMode -> PackMode -> Bool #
Ord PackMode # |
Methods compare :: PackMode -> PackMode -> Ordering # (<) :: PackMode -> PackMode -> Bool # (<=) :: PackMode -> PackMode -> Bool # (>) :: PackMode -> PackMode -> Bool # (>=) :: PackMode -> PackMode -> Bool # max :: PackMode -> PackMode -> PackMode # min :: PackMode -> PackMode -> PackMode #
Read PackMode # |
Methods readsPrec :: Int -> ReadS PackMode # readList :: ReadS [PackMode] # readPrec :: ReadPrec PackMode # readListPrec :: ReadPrec [PackMode] #
Show PackMode # |
Methods showsPrec :: Int -> PackMode -> ShowS # show :: PackMode -> String # showList :: [PackMode] -> ShowS #
ParseDot PackMode # |
Methods parseUnqt :: Parse PackMode # parse :: Parse PackMode # parseUnqtList :: Parse [PackMode] # parseList :: Parse [PackMode] #
PrintDot PackMode # |
Methods unqtDot :: PackMode -> DotCode # toDot :: PackMode -> DotCode # unqtListToDot :: [PackMode] -> DotCode # listToDot :: [PackMode] -> DotCode #

data PageDir #

Upper-case first character is major order; lower-case second character is minor order.

Constructors

Bl |
Br |
Tl |
Tr |
Rb |
Rt |
Lb |
Lt |

Instances

Bounded PageDir # |
Methods minBound :: PageDir # maxBound :: PageDir #
Enum PageDir # |
Methods succ :: PageDir -> PageDir # pred :: PageDir -> PageDir # toEnum :: Int -> PageDir # fromEnum :: PageDir -> Int # enumFrom :: PageDir -> [PageDir] # enumFromThen :: PageDir -> PageDir -> [PageDir] # enumFromTo :: PageDir -> PageDir -> [PageDir] # enumFromThenTo :: PageDir -> PageDir -> PageDir -> [PageDir] #
Eq PageDir # |
Methods (==) :: PageDir -> PageDir -> Bool # (/=) :: PageDir -> PageDir -> Bool #
Ord PageDir # |
Methods compare :: PageDir -> PageDir -> Ordering # (<) :: PageDir -> PageDir -> Bool # (<=) :: PageDir -> PageDir -> Bool # (>) :: PageDir -> PageDir -> Bool # (>=) :: PageDir -> PageDir -> Bool # max :: PageDir -> PageDir -> PageDir # min :: PageDir -> PageDir -> PageDir #
Read PageDir # |
Methods readsPrec :: Int -> ReadS PageDir # readList :: ReadS [PageDir] # readPrec :: ReadPrec PageDir # readListPrec :: ReadPrec [PageDir] #
Show PageDir # |
Methods showsPrec :: Int -> PageDir -> ShowS # show :: PageDir -> String # showList :: [PageDir] -> ShowS #
ParseDot PageDir # |
Methods parseUnqt :: Parse PageDir # parse :: Parse PageDir # parseUnqtList :: Parse [PageDir] # parseList :: Parse [PageDir] #
PrintDot PageDir # |
Methods unqtDot :: PageDir -> DotCode # toDot :: PageDir -> DotCode # unqtListToDot :: [PageDir] -> DotCode # listToDot :: [PageDir] -> DotCode #

data QuadType #

Constructors

NormalQT |
FastQT |
NoQT |

Instances

Bounded QuadType # |
Methods minBound :: QuadType # maxBound :: QuadType #
Enum QuadType # |
Methods succ :: QuadType -> QuadType # pred :: QuadType -> QuadType # toEnum :: Int -> QuadType # fromEnum :: QuadType -> Int # enumFrom :: QuadType -> [QuadType] # enumFromThen :: QuadType -> QuadType -> [QuadType] # enumFromTo :: QuadType -> QuadType -> [QuadType] # enumFromThenTo :: QuadType -> QuadType -> QuadType -> [QuadType] #
Eq QuadType # |
Methods (==) :: QuadType -> QuadType -> Bool # (/=) :: QuadType -> QuadType -> Bool #
Ord QuadType # |
Methods compare :: QuadType -> QuadType -> Ordering # (<) :: QuadType -> QuadType -> Bool # (<=) :: QuadType -> QuadType -> Bool # (>) :: QuadType -> QuadType -> Bool # (>=) :: QuadType -> QuadType -> Bool # max :: QuadType -> QuadType -> QuadType # min :: QuadType -> QuadType -> QuadType #
Read QuadType # |
Methods readsPrec :: Int -> ReadS QuadType # readList :: ReadS [QuadType] # readPrec :: ReadPrec QuadType # readListPrec :: ReadPrec [QuadType] #
Show QuadType # |
Methods showsPrec :: Int -> QuadType -> ShowS # show :: QuadType -> String # showList :: [QuadType] -> ShowS #
ParseDot QuadType # |
Methods parseUnqt :: Parse QuadType # parse :: Parse QuadType # parseUnqtList :: Parse [QuadType] # parseList :: Parse [QuadType] #
PrintDot QuadType # |
Methods unqtDot :: QuadType -> DotCode # toDot :: QuadType -> DotCode # unqtListToDot :: [QuadType] -> DotCode # listToDot :: [QuadType] -> DotCode #

data RankType #

Constructors

SameRank |
MinRank |
SourceRank |
MaxRank |
SinkRank |

Instances

Bounded RankType # |
Methods minBound :: RankType # maxBound :: RankType #
Enum RankType # |
Methods succ :: RankType -> RankType # pred :: RankType -> RankType # toEnum :: Int -> RankType # fromEnum :: RankType -> Int # enumFrom :: RankType -> [RankType] # enumFromThen :: RankType -> RankType -> [RankType] # enumFromTo :: RankType -> RankType -> [RankType] # enumFromThenTo :: RankType -> RankType -> RankType -> [RankType] #
Eq RankType # |
Methods (==) :: RankType -> RankType -> Bool # (/=) :: RankType -> RankType -> Bool #
Ord RankType # |
Methods compare :: RankType -> RankType -> Ordering # (<) :: RankType -> RankType -> Bool # (<=) :: RankType -> RankType -> Bool # (>) :: RankType -> RankType -> Bool # (>=) :: RankType -> RankType -> Bool # max :: RankType -> RankType -> RankType # min :: RankType -> RankType -> RankType #
Read RankType # |
Methods readsPrec :: Int -> ReadS RankType # readList :: ReadS [RankType] # readPrec :: ReadPrec RankType # readListPrec :: ReadPrec [RankType] #
Show RankType # |
Methods showsPrec :: Int -> RankType -> ShowS # show :: RankType -> String # showList :: [RankType] -> ShowS #
ParseDot RankType # |
Methods parseUnqt :: Parse RankType # parse :: Parse RankType # parseUnqtList :: Parse [RankType] # parseList :: Parse [RankType] #
PrintDot RankType # |
Methods unqtDot :: RankType -> DotCode # toDot :: RankType -> DotCode # unqtListToDot :: [RankType] -> DotCode # listToDot :: [RankType] -> DotCode #

data RankDir #

Constructors

FromTop |
FromLeft |
FromBottom |
FromRight |

Instances

Bounded RankDir # |
Methods minBound :: RankDir # maxBound :: RankDir #
Enum RankDir # |
Methods succ :: RankDir -> RankDir # pred :: RankDir -> RankDir # toEnum :: Int -> RankDir # fromEnum :: RankDir -> Int # enumFrom :: RankDir -> [RankDir] # enumFromThen :: RankDir -> RankDir -> [RankDir] # enumFromTo :: RankDir -> RankDir -> [RankDir] # enumFromThenTo :: RankDir -> RankDir -> RankDir -> [RankDir] #
Eq RankDir # |
Methods (==) :: RankDir -> RankDir -> Bool # (/=) :: RankDir -> RankDir -> Bool #
Ord RankDir # |
Methods compare :: RankDir -> RankDir -> Ordering # (<) :: RankDir -> RankDir -> Bool # (<=) :: RankDir -> RankDir -> Bool # (>) :: RankDir -> RankDir -> Bool # (>=) :: RankDir -> RankDir -> Bool # max :: RankDir -> RankDir -> RankDir # min :: RankDir -> RankDir -> RankDir #
Read RankDir # |
Methods readsPrec :: Int -> ReadS RankDir # readList :: ReadS [RankDir] # readPrec :: ReadPrec RankDir # readListPrec :: ReadPrec [RankDir] #
Show RankDir # |
Methods showsPrec :: Int -> RankDir -> ShowS # show :: RankDir -> String # showList :: [RankDir] -> ShowS #
ParseDot RankDir # |
Methods parseUnqt :: Parse RankDir # parse :: Parse RankDir # parseUnqtList :: Parse [RankDir] # parseList :: Parse [RankDir] #
PrintDot RankDir # |
Methods unqtDot :: RankDir -> DotCode # toDot :: RankDir -> DotCode # unqtListToDot :: [RankDir] -> DotCode # listToDot :: [RankDir] -> DotCode #

data StartType #

Constructors

StartStyle STStyle |
StartSeed Int |
StartStyleSeed STStyle Int |

Instances

Eq StartType # |
Methods (==) :: StartType -> StartType -> Bool # (/=) :: StartType -> StartType -> Bool #
Ord StartType # |
Methods compare :: StartType -> StartType -> Ordering # (<) :: StartType -> StartType -> Bool # (<=) :: StartType -> StartType -> Bool # (>) :: StartType -> StartType -> Bool # (>=) :: StartType -> StartType -> Bool # max :: StartType -> StartType -> StartType # min :: StartType -> StartType -> StartType #
Read StartType # |
Methods readsPrec :: Int -> ReadS StartType # readList :: ReadS [StartType] # readPrec :: ReadPrec StartType # readListPrec :: ReadPrec [StartType] #
Show StartType # |
Methods showsPrec :: Int -> StartType -> ShowS # show :: StartType -> String # showList :: [StartType] -> ShowS #
ParseDot StartType # |
Methods parseUnqt :: Parse StartType # parse :: Parse StartType # parseUnqtList :: Parse [StartType] # parseList :: Parse [StartType] #
PrintDot StartType # |
Methods unqtDot :: StartType -> DotCode # toDot :: StartType -> DotCode # unqtListToDot :: [StartType] -> DotCode # listToDot :: [StartType] -> DotCode #

data ViewPort #

Constructors

VP |
Fields wVal :: Double hVal :: Double zVal :: Double focus :: Maybe FocusType

Instances

Eq ViewPort # |
Methods (==) :: ViewPort -> ViewPort -> Bool # (/=) :: ViewPort -> ViewPort -> Bool #
Ord ViewPort # |
Methods compare :: ViewPort -> ViewPort -> Ordering # (<) :: ViewPort -> ViewPort -> Bool # (<=) :: ViewPort -> ViewPort -> Bool # (>) :: ViewPort -> ViewPort -> Bool # (>=) :: ViewPort -> ViewPort -> Bool # max :: ViewPort -> ViewPort -> ViewPort # min :: ViewPort -> ViewPort -> ViewPort #
Read ViewPort # |
Methods readsPrec :: Int -> ReadS ViewPort # readList :: ReadS [ViewPort] # readPrec :: ReadPrec ViewPort # readListPrec :: ReadPrec [ViewPort] #
Show ViewPort # |
Methods showsPrec :: Int -> ViewPort -> ShowS # show :: ViewPort -> String # showList :: [ViewPort] -> ShowS #
ParseDot ViewPort # |
Methods parseUnqt :: Parse ViewPort # parse :: Parse ViewPort # parseUnqtList :: Parse [ViewPort] # parseList :: Parse [ViewPort] #
PrintDot ViewPort # |
Methods unqtDot :: ViewPort -> DotCode # toDot :: ViewPort -> DotCode # unqtListToDot :: [ViewPort] -> DotCode # listToDot :: [ViewPort] -> DotCode #

data FocusType #

For use with `ViewPort`.

Constructors

XY Point |
NodeFocus Text |

Instances

Eq FocusType # |
Methods (==) :: FocusType -> FocusType -> Bool # (/=) :: FocusType -> FocusType -> Bool #
Ord FocusType # |
Methods compare :: FocusType -> FocusType -> Ordering # (<) :: FocusType -> FocusType -> Bool # (<=) :: FocusType -> FocusType -> Bool # (>) :: FocusType -> FocusType -> Bool # (>=) :: FocusType -> FocusType -> Bool # max :: FocusType -> FocusType -> FocusType # min :: FocusType -> FocusType -> FocusType #
Read FocusType # |
Methods readsPrec :: Int -> ReadS FocusType # readList :: ReadS [FocusType] # readPrec :: ReadPrec FocusType # readListPrec :: ReadPrec [FocusType] #
Show FocusType # |
Methods showsPrec :: Int -> FocusType -> ShowS # show :: FocusType -> String # showList :: [FocusType] -> ShowS #
ParseDot FocusType # |
Methods parseUnqt :: Parse FocusType # parse :: Parse FocusType # parseUnqtList :: Parse [FocusType] # parseList :: Parse [FocusType] #
PrintDot FocusType # |
Methods unqtDot :: FocusType -> DotCode # toDot :: FocusType -> DotCode # unqtListToDot :: [FocusType] -> DotCode # listToDot :: [FocusType] -> DotCode #

data Ratios #

Constructors

AspectRatio Double |
FillRatio |
CompressRatio |
ExpandRatio |
AutoRatio |

Instances

Eq Ratios # |
Methods (==) :: Ratios -> Ratios -> Bool # (/=) :: Ratios -> Ratios -> Bool #
Ord Ratios # |
Methods compare :: Ratios -> Ratios -> Ordering # (<) :: Ratios -> Ratios -> Bool # (<=) :: Ratios -> Ratios -> Bool # (>) :: Ratios -> Ratios -> Bool # (>=) :: Ratios -> Ratios -> Bool # max :: Ratios -> Ratios -> Ratios # min :: Ratios -> Ratios -> Ratios #
Read Ratios # |
Methods readsPrec :: Int -> ReadS Ratios # readList :: ReadS [Ratios] # readPrec :: ReadPrec Ratios # readListPrec :: ReadPrec [Ratios] #
Show Ratios # |
Methods showsPrec :: Int -> Ratios -> ShowS # show :: Ratios -> String # showList :: [Ratios] -> ShowS #
ParseDot Ratios # |
Methods parseUnqt :: Parse Ratios # parse :: Parse Ratios # parseUnqtList :: Parse [Ratios] # parseList :: Parse [Ratios] #
PrintDot Ratios # |
Methods unqtDot :: Ratios -> DotCode # toDot :: Ratios -> DotCode # unqtListToDot :: [Ratios] -> DotCode # listToDot :: [Ratios] -> DotCode #

## Modes

data ModeType #

For `Neato` unless indicated otherwise.

Constructors

Major |
KK |
Hier |
IpSep |
SpringMode | For `Sfdp`, requires Graphviz >= 2.32.0.
MaxEnt | For `Sfdp`, requires Graphviz >= 2.32.0.

Instances

Bounded ModeType # |
Methods minBound :: ModeType # maxBound :: ModeType #
Enum ModeType # |
Methods succ :: ModeType -> ModeType # pred :: ModeType -> ModeType # toEnum :: Int -> ModeType # fromEnum :: ModeType -> Int # enumFrom :: ModeType -> [ModeType] # enumFromThen :: ModeType -> ModeType -> [ModeType] # enumFromTo :: ModeType -> ModeType -> [ModeType] # enumFromThenTo :: ModeType -> ModeType -> ModeType -> [ModeType] #
Eq ModeType # |
Methods (==) :: ModeType -> ModeType -> Bool # (/=) :: ModeType -> ModeType -> Bool #
Ord ModeType # |
Methods compare :: ModeType -> ModeType -> Ordering # (<) :: ModeType -> ModeType -> Bool # (<=) :: ModeType -> ModeType -> Bool # (>) :: ModeType -> ModeType -> Bool # (>=) :: ModeType -> ModeType -> Bool # max :: ModeType -> ModeType -> ModeType # min :: ModeType -> ModeType -> ModeType #
Read ModeType # |
Methods readsPrec :: Int -> ReadS ModeType # readList :: ReadS [ModeType] # readPrec :: ReadPrec ModeType # readListPrec :: ReadPrec [ModeType] #
Show ModeType # |
Methods showsPrec :: Int -> ModeType -> ShowS # show :: ModeType -> String # showList :: [ModeType] -> ShowS #
ParseDot ModeType # |
Methods parseUnqt :: Parse ModeType # parse :: Parse ModeType # parseUnqtList :: Parse [ModeType] # parseList :: Parse [ModeType] #
PrintDot ModeType # |
Methods unqtDot :: ModeType -> DotCode # toDot :: ModeType -> DotCode # unqtListToDot :: [ModeType] -> DotCode # listToDot :: [ModeType] -> DotCode #

data DEConstraints #

Only when `mode == `IpSep``.

Constructors

EdgeConstraints |
NoConstraints |
HierConstraints |

Instances

Bounded DEConstraints # |
Methods minBound :: DEConstraints # maxBound :: DEConstraints #
Enum DEConstraints # |
Methods succ :: DEConstraints -> DEConstraints # pred :: DEConstraints -> DEConstraints # toEnum :: Int -> DEConstraints # fromEnum :: DEConstraints -> Int # enumFrom :: DEConstraints -> [DEConstraints] # enumFromThen :: DEConstraints -> DEConstraints -> [DEConstraints] # enumFromTo :: DEConstraints -> DEConstraints -> [DEConstraints] # enumFromThenTo :: DEConstraints -> DEConstraints -> DEConstraints -> [DEConstraints] #
Eq DEConstraints # |
Methods (==) :: DEConstraints -> DEConstraints -> Bool # (/=) :: DEConstraints -> DEConstraints -> Bool #
Ord DEConstraints # |
Methods compare :: DEConstraints -> DEConstraints -> Ordering # (<) :: DEConstraints -> DEConstraints -> Bool # (<=) :: DEConstraints -> DEConstraints -> Bool # (>) :: DEConstraints -> DEConstraints -> Bool # (>=) :: DEConstraints -> DEConstraints -> Bool # max :: DEConstraints -> DEConstraints -> DEConstraints # min :: DEConstraints -> DEConstraints -> DEConstraints #
Read DEConstraints # |
Methods readsPrec :: Int -> ReadS DEConstraints # readList :: ReadS [DEConstraints] # readPrec :: ReadPrec DEConstraints # readListPrec :: ReadPrec [DEConstraints] #
Show DEConstraints # |
Methods showsPrec :: Int -> DEConstraints -> ShowS # show :: DEConstraints -> String # showList :: [DEConstraints] -> ShowS #
ParseDot DEConstraints # |
Methods parseUnqt :: Parse DEConstraints # parse :: Parse DEConstraints # parseUnqtList :: Parse [DEConstraints] # parseList :: Parse [DEConstraints] #
PrintDot DEConstraints # |
Methods unqtDot :: DEConstraints -> DotCode # toDot :: DEConstraints -> DotCode # unqtListToDot :: [DEConstraints] -> DotCode # listToDot :: [DEConstraints] -> DotCode #

## Layers

newtype LayerSep #

Constructors

LSep Text |

Instances

Eq LayerSep # |
Methods (==) :: LayerSep -> LayerSep -> Bool # (/=) :: LayerSep -> LayerSep -> Bool #
Ord LayerSep # |
Methods compare :: LayerSep -> LayerSep -> Ordering # (<) :: LayerSep -> LayerSep -> Bool # (<=) :: LayerSep -> LayerSep -> Bool # (>) :: LayerSep -> LayerSep -> Bool # (>=) :: LayerSep -> LayerSep -> Bool # max :: LayerSep -> LayerSep -> LayerSep # min :: LayerSep -> LayerSep -> LayerSep #
Read LayerSep # |
Methods readsPrec :: Int -> ReadS LayerSep # readList :: ReadS [LayerSep] # readPrec :: ReadPrec LayerSep # readListPrec :: ReadPrec [LayerSep] #
Show LayerSep # |
Methods showsPrec :: Int -> LayerSep -> ShowS # show :: LayerSep -> String # showList :: [LayerSep] -> ShowS #
ParseDot LayerSep # |
Methods parseUnqt :: Parse LayerSep # parse :: Parse LayerSep # parseUnqtList :: Parse [LayerSep] # parseList :: Parse [LayerSep] #
PrintDot LayerSep # |
Methods unqtDot :: LayerSep -> DotCode # toDot :: LayerSep -> DotCode # unqtListToDot :: [LayerSep] -> DotCode # listToDot :: [LayerSep] -> DotCode #

newtype LayerListSep #

Constructors

LLSep Text |

Instances

Eq LayerListSep # |
Methods (==) :: LayerListSep -> LayerListSep -> Bool # (/=) :: LayerListSep -> LayerListSep -> Bool #
Ord LayerListSep # |
Methods compare :: LayerListSep -> LayerListSep -> Ordering # (<) :: LayerListSep -> LayerListSep -> Bool # (<=) :: LayerListSep -> LayerListSep -> Bool # (>) :: LayerListSep -> LayerListSep -> Bool # (>=) :: LayerListSep -> LayerListSep -> Bool # max :: LayerListSep -> LayerListSep -> LayerListSep # min :: LayerListSep -> LayerListSep -> LayerListSep #
Read LayerListSep # |
Methods readsPrec :: Int -> ReadS LayerListSep # readList :: ReadS [LayerListSep] # readPrec :: ReadPrec LayerListSep # readListPrec :: ReadPrec [LayerListSep] #
Show LayerListSep # |
Methods showsPrec :: Int -> LayerListSep -> ShowS # show :: LayerListSep -> String # showList :: [LayerListSep] -> ShowS #
ParseDot LayerListSep # |
Methods parseUnqt :: Parse LayerListSep # parse :: Parse LayerListSep # parseUnqtList :: Parse [LayerListSep] # parseList :: Parse [LayerListSep] #
PrintDot LayerListSep # |
Methods unqtDot :: LayerListSep -> DotCode # toDot :: LayerListSep -> DotCode # unqtListToDot :: [LayerListSep] -> DotCode # listToDot :: [LayerListSep] -> DotCode #

type LayerRange = [LayerRangeElem] #

data LayerRangeElem #

Constructors

LRID LayerID |
LRS LayerID LayerID |

Instances

Eq LayerRangeElem # |
Methods (==) :: LayerRangeElem -> LayerRangeElem -> Bool # (/=) :: LayerRangeElem -> LayerRangeElem -> Bool #
Ord LayerRangeElem # |
Methods compare :: LayerRangeElem -> LayerRangeElem -> Ordering # (<) :: LayerRangeElem -> LayerRangeElem -> Bool # (<=) :: LayerRangeElem -> LayerRangeElem -> Bool # (>) :: LayerRangeElem -> LayerRangeElem -> Bool # (>=) :: LayerRangeElem -> LayerRangeElem -> Bool # max :: LayerRangeElem -> LayerRangeElem -> LayerRangeElem # min :: LayerRangeElem -> LayerRangeElem -> LayerRangeElem #
Read LayerRangeElem # |
Methods readsPrec :: Int -> ReadS LayerRangeElem # readList :: ReadS [LayerRangeElem] # readPrec :: ReadPrec LayerRangeElem # readListPrec :: ReadPrec [LayerRangeElem] #
Show LayerRangeElem # |
Methods showsPrec :: Int -> LayerRangeElem -> ShowS # show :: LayerRangeElem -> String # showList :: [LayerRangeElem] -> ShowS #
ParseDot LayerRangeElem # |
Methods parseUnqt :: Parse LayerRangeElem # parse :: Parse LayerRangeElem # parseUnqtList :: Parse [LayerRangeElem] # parseList :: Parse [LayerRangeElem] #
PrintDot LayerRangeElem # |
Methods unqtDot :: LayerRangeElem -> DotCode # toDot :: LayerRangeElem -> DotCode # unqtListToDot :: [LayerRangeElem] -> DotCode # listToDot :: [LayerRangeElem] -> DotCode #

data LayerID #

You should not have any layer separator characters for the `LRName` option, as they won't be parseable.

Constructors

AllLayers |
LRInt Int |
LRName Text | Should not be a number or `"all"`.

Instances

Eq LayerID # |
Methods (==) :: LayerID -> LayerID -> Bool # (/=) :: LayerID -> LayerID -> Bool #
Ord LayerID # |
Methods compare :: LayerID -> LayerID -> Ordering # (<) :: LayerID -> LayerID -> Bool # (<=) :: LayerID -> LayerID -> Bool # (>) :: LayerID -> LayerID -> Bool # (>=) :: LayerID -> LayerID -> Bool # max :: LayerID -> LayerID -> LayerID # min :: LayerID -> LayerID -> LayerID #
Read LayerID # |
Methods readsPrec :: Int -> ReadS LayerID # readList :: ReadS [LayerID] # readPrec :: ReadPrec LayerID # readListPrec :: ReadPrec [LayerID] #
Show LayerID # |
Methods showsPrec :: Int -> LayerID -> ShowS # show :: LayerID -> String # showList :: [LayerID] -> ShowS #
ParseDot LayerID # |
Methods parseUnqt :: Parse LayerID # parse :: Parse LayerID # parseUnqtList :: Parse [LayerID] # parseList :: Parse [LayerID] #
PrintDot LayerID # |
Methods unqtDot :: LayerID -> DotCode # toDot :: LayerID -> DotCode # unqtListToDot :: [LayerID] -> DotCode # listToDot :: [LayerID] -> DotCode #

newtype LayerList #

A list of layer names. The names should all be unique `LRName` values, and when printed will use an arbitrary character from `defLayerSep`. The values in the list are implicitly numbered `1, 2, ...`.

Constructors

LL [LayerID] |

Instances

Eq LayerList # |
Methods (==) :: LayerList -> LayerList -> Bool # (/=) :: LayerList -> LayerList -> Bool #
Ord LayerList # |
Methods compare :: LayerList -> LayerList -> Ordering # (<) :: LayerList -> LayerList -> Bool # (<=) :: LayerList -> LayerList -> Bool # (>) :: LayerList -> LayerList -> Bool # (>=) :: LayerList -> LayerList -> Bool # max :: LayerList -> LayerList -> LayerList # min :: LayerList -> LayerList -> LayerList #
Read LayerList # |
Methods readsPrec :: Int -> ReadS LayerList # readList :: ReadS [LayerList] # readPrec :: ReadPrec LayerList # readListPrec :: ReadPrec [LayerList] #
Show LayerList # |
Methods showsPrec :: Int -> LayerList -> ShowS # show :: LayerList -> String # showList :: [LayerList] -> ShowS #
ParseDot LayerList # |
Methods parseUnqt :: Parse LayerList # parse :: Parse LayerList # parseUnqtList :: Parse [LayerList] # parseList :: Parse [LayerList] #
PrintDot LayerList # |
Methods unqtDot :: LayerList -> DotCode # toDot :: LayerList -> DotCode # unqtListToDot :: [LayerList] -> DotCode # listToDot :: [LayerList] -> DotCode #

## Stylistic

data SmoothType #

Constructors

NoSmooth |
AvgDist |
GraphDist |
PowerDist |
RNG |
Spring |
TriangleSmooth |

Instances

Bounded SmoothType # |
Methods minBound :: SmoothType # maxBound :: SmoothType #
Enum SmoothType # |
Methods succ :: SmoothType -> SmoothType # pred :: SmoothType -> SmoothType # toEnum :: Int -> SmoothType # fromEnum :: SmoothType -> Int # enumFrom :: SmoothType -> [SmoothType] # enumFromThen :: SmoothType -> SmoothType -> [SmoothType] # enumFromTo :: SmoothType -> SmoothType -> [SmoothType] # enumFromThenTo :: SmoothType -> SmoothType -> SmoothType -> [SmoothType] #
Eq SmoothType # |
Methods (==) :: SmoothType -> SmoothType -> Bool # (/=) :: SmoothType -> SmoothType -> Bool #
Ord SmoothType # |
Methods compare :: SmoothType -> SmoothType -> Ordering # (<) :: SmoothType -> SmoothType -> Bool # (<=) :: SmoothType -> SmoothType -> Bool # (>) :: SmoothType -> SmoothType -> Bool # (>=) :: SmoothType -> SmoothType -> Bool # max :: SmoothType -> SmoothType -> SmoothType # min :: SmoothType -> SmoothType -> SmoothType #
Read SmoothType # |
Methods readsPrec :: Int -> ReadS SmoothType # readList :: ReadS [SmoothType] # readPrec :: ReadPrec SmoothType # readListPrec :: ReadPrec [SmoothType] #
Show SmoothType # |
Methods showsPrec :: Int -> SmoothType -> ShowS # show :: SmoothType -> String # showList :: [SmoothType] -> ShowS #
ParseDot SmoothType # |
Methods parseUnqt :: Parse SmoothType # parse :: Parse SmoothType # parseUnqtList :: Parse [SmoothType] # parseList :: Parse [SmoothType] #
PrintDot SmoothType # |
Methods unqtDot :: SmoothType -> DotCode # toDot :: SmoothType -> DotCode # unqtListToDot :: [SmoothType] -> DotCode # listToDot :: [SmoothType] -> DotCode #

data STStyle #

Constructors

RegularStyle |
SelfStyle |
RandomStyle |

Instances

Bounded STStyle # |
Methods minBound :: STStyle # maxBound :: STStyle #
Enum STStyle # |
Methods succ :: STStyle -> STStyle # pred :: STStyle -> STStyle # toEnum :: Int -> STStyle # fromEnum :: STStyle -> Int # enumFrom :: STStyle -> [STStyle] # enumFromThen :: STStyle -> STStyle -> [STStyle] # enumFromTo :: STStyle -> STStyle -> [STStyle] # enumFromThenTo :: STStyle -> STStyle -> STStyle -> [STStyle] #
Eq STStyle # |
Methods (==) :: STStyle -> STStyle -> Bool # (/=) :: STStyle -> STStyle -> Bool #
Ord STStyle # |
Methods compare :: STStyle -> STStyle -> Ordering # (<) :: STStyle -> STStyle -> Bool # (<=) :: STStyle -> STStyle -> Bool # (>) :: STStyle -> STStyle -> Bool # (>=) :: STStyle -> STStyle -> Bool # max :: STStyle -> STStyle -> STStyle # min :: STStyle -> STStyle -> STStyle #
Read STStyle # |
Methods readsPrec :: Int -> ReadS STStyle # readList :: ReadS [STStyle] # readPrec :: ReadPrec STStyle # readListPrec :: ReadPrec [STStyle] #
Show STStyle # |
Methods showsPrec :: Int -> STStyle -> ShowS # show :: STStyle -> String # showList :: [STStyle] -> ShowS #
ParseDot STStyle # |
Methods parseUnqt :: Parse STStyle # parse :: Parse STStyle # parseUnqtList :: Parse [STStyle] # parseList :: Parse [STStyle] #
PrintDot STStyle # |
Methods unqtDot :: STStyle -> DotCode # toDot :: STStyle -> DotCode # unqtListToDot :: [STStyle] -> DotCode # listToDot :: [STStyle] -> DotCode #

data StyleItem #

An individual style item. Except for `DD`, the `[`String`]` should be empty.

Constructors

SItem StyleName [Text] |

Instances

Eq StyleItem # |
Methods (==) :: StyleItem -> StyleItem -> Bool # (/=) :: StyleItem -> StyleItem -> Bool #
Ord StyleItem # |
Methods compare :: StyleItem -> StyleItem -> Ordering # (<) :: StyleItem -> StyleItem -> Bool # (<=) :: StyleItem -> StyleItem -> Bool # (>) :: StyleItem -> StyleItem -> Bool # (>=) :: StyleItem -> StyleItem -> Bool # max :: StyleItem -> StyleItem -> StyleItem # min :: StyleItem -> StyleItem -> StyleItem #
Read StyleItem # |
Methods readsPrec :: Int -> ReadS StyleItem # readList :: ReadS [StyleItem] # readPrec :: ReadPrec StyleItem # readListPrec :: ReadPrec [StyleItem] #
Show StyleItem # |
Methods showsPrec :: Int -> StyleItem -> ShowS # show :: StyleItem -> String # showList :: [StyleItem] -> ShowS #
ParseDot StyleItem # |
Methods parseUnqt :: Parse StyleItem # parse :: Parse StyleItem # parseUnqtList :: Parse [StyleItem] # parseList :: Parse [StyleItem] #
PrintDot StyleItem # |
Methods unqtDot :: StyleItem -> DotCode # toDot :: StyleItem -> DotCode # unqtListToDot :: [StyleItem] -> DotCode # listToDot :: [StyleItem] -> DotCode #

data StyleName #

Constructors

Dashed | Nodes and Edges
Dotted | Nodes and Edges
Solid | Nodes and Edges
Bold | Nodes and Edges
Invisible | Nodes and Edges
Filled | Nodes and Clusters
Striped | Rectangularly-shaped Nodes and Clusters; requires Graphviz >= 2.30.0
Wedged | Elliptically-shaped Nodes only; requires Graphviz >= 2.30.0
Diagonals | Nodes only
Rounded | Nodes and Clusters
Tapered | Edges only; requires Graphviz >= 2.29.0
Radial | Nodes, Clusters and Graphs, for use with `GradientAngle`; requires Graphviz >= 2.29.0
DD Text | Device Dependent

Instances

Eq StyleName # |
Methods (==) :: StyleName -> StyleName -> Bool # (/=) :: StyleName -> StyleName -> Bool #
Ord StyleName # |
Methods compare :: StyleName -> StyleName -> Ordering # (<) :: StyleName -> StyleName -> Bool # (<=) :: StyleName -> StyleName -> Bool # (>) :: StyleName -> StyleName -> Bool # (>=) :: StyleName -> StyleName -> Bool # max :: StyleName -> StyleName -> StyleName # min :: StyleName -> StyleName -> StyleName #
Read StyleName # |
Methods readsPrec :: Int -> ReadS StyleName # readList :: ReadS [StyleName] # readPrec :: ReadPrec StyleName # readListPrec :: ReadPrec [StyleName] #
Show StyleName # |
Methods showsPrec :: Int -> StyleName -> ShowS # show :: StyleName -> String # showList :: [StyleName] -> ShowS #
ParseDot StyleName # |
Methods parseUnqt :: Parse StyleName # parse :: Parse StyleName # parseUnqtList :: Parse [StyleName] # parseList :: Parse [StyleName] #
PrintDot StyleName # |
Methods unqtDot :: StyleName -> DotCode # toDot :: StyleName -> DotCode # unqtListToDot :: [StyleName] -> DotCode # listToDot :: [StyleName] -> DotCode #