`type graph = [`

1. `| CommonAttributes.graph`
2. `| `Bgcolor of color`
   (*

   Sets the background color and the inital fill color.

   *)
3. `| `BgcolorWithTransparency of color_with_transparency`
   (*

   Sets the background color and the inital fill color with a transparency component.

   *)
4. `| `Comment of string`
   (*

   Comment string.

   *)
5. `| `Concentrate of bool`
   (*

   If `true`, enables edge concentrators. Default value is `false`.

   *)
6. `| `Fontpath of string`
   (*

   List of directories for fonts.

   *)
7. `| `Layers of string list`
   (*

   List of layers.

   *)
8. `| `Margin of float`
   (*

   Sets the page margin (included in the page size). Default value is `0.5`.

   *)
9. `| `Mclimit of float`
   (*

   Scale factor for mincross iterations. Default value is `1.0`.

   *)
10. `| `Nodesep of float`
    (*

    Sets the minimum separation between nodes, in inches. Default value is `0.25`.

    *)
11. `| `Nslimit of int`
    (*

    If set of `f`, bounds network simplex iterations by `f * <number of nodes>` when ranking nodes.

    *)
12. `| `Nslimit1 of int`
    (*

    If set of `f`, bounds network simplex iterations by `f * <number of nodes>` when setting x-coordinates.

    *)
13. `| `Ranksep of float`
    (*

    Sets the minimum separation between ranks.

    *)
14. `| `Quantum of float`
    (*

    If not `0.0`, node label dimensions will be rounded to integral multiples of it. Default value is `0.0`.

    *)
15. `| `Rankdir of [ `TopToBottom | `BottomToTop | `LeftToRight | `RightToLeft ]`
    (*

    Direction of rank ordering. Default value is ``TopToBottom`.

    *)
16. `| `Ratio of [ `Float of float | `Fill | `Compress | `Auto ]`
    (*

    Sets the aspect ratio.

    *)
17. `| `Samplepoints of int`
    (*

    Number of points used to represent ellipses and circles on output. Default value is `8`.

    *)
18. `| `Url of string`
    (*

    URL associated with graph (format-dependent).

    *)

`]`

Attributes of graphs. They include all common graph attributes and several specific ones. All attributes described in the "dot User's Manual, February 4, 2002" are handled, excepted: clusterank, color, compound, labeljust, labelloc, ordering, rank, remincross, rotate, searchsize and style.

`type vertex = [`

1. `| CommonAttributes.vertex`
2. `| `Comment of string`
   (*

   Comment string.

   *)
3. `| `Distortion of float`
4. `| `Fillcolor of color`
   (*

   Sets the fill color (used when `Style filled). Default value is `lightgrey`.

   *)
5. `| `FillcolorWithTransparency of color_with_transparency`
   (*

   Sets the fill color (used when `Style filled) with a transparency component. Default value is fully opaque `lightgrey`.

   *)
6. `| `Fixedsize of bool`
   (*

   If `true`, forces the given dimensions to be the actual ones. Default value is `false`.

   *)
7. `| `Layer of string`
   (*

   Overlay.

   *)
8. `| `Url of string`
   (*

   The default url for image map files; in PostScript files, the base URL for all relative URLs, as recognized by Acrobat Distiller 3.0 and up.

   *)
9. `| `Z of float`
   (*

   z coordinate for VRML output.

   *)

`]`

Attributes of nodes. They include all common node attributes and several specific ones. All attributes described in the "dot User's Manual, February 4, 2002" are handled, excepted: bottomlabel, group, shapefile and toplabel.

`type edge = [`

1. `| CommonAttributes.edge`
2. `| `Arrowhead of arrow_style`
   (*

   Sets the style of the head arrow. Default value is ``Normal`.

   *)
3. `| `Arrowsize of float`
   (*

   Sets the scaling factor of arrowheads. Default value is `1.0`.

   *)
4. `| `Arrowtail of arrow_style`
   (*

   Sets the style of the tail arrow. Default value is ``Normal`.

   *)
5. `| `Comment of string`
   (*

   Comment string.

   *)
6. `| `Constraint of bool`
   (*

   If `false`, causes an edge to be ignored for rank assignment. Default value is `true`.

   *)
7. `| `Headlabel of string`
   (*

   Sets the label attached to the head arrow.

   *)
8. `| `Headport of [ `N | `NE | `E | `SE | `S | `SW | `W | `NW ]`
9. `| `Headurl of string`
   (*

   Url attached to head label if output format is ismap.

   *)
10. `| `Labelangle of float`
    (*

    Angle in degrees which head or tail label is rotated off edge. Default value is `-25.0`.

    *)
11. `| `Labeldistance of float`
    (*

    Scaling factor for distance of head or tail label from node. Default value is `1.0`.

    *)
12. `| `Labelfloat of bool`
    (*

    If `true`, lessen constraints on edge label placement. Default value is `false`.

    *)
13. `| `Layer of string`
    (*

    Overlay.

    *)
14. `| `Minlen of int`
    (*

    Minimum rank distance between head an tail. Default value is `1`.

    *)
15. `| `Samehead of string`
    (*

    Tag for head node; edge heads with the same tag are merged onto the same port.

    *)
16. `| `Sametail of string`
    (*

    Tag for tail node; edge tails with the same tag are merged onto the same port.

    *)
17. `| `Taillabel of string`
    (*

    Sets the label attached to the tail arrow.

    *)
18. `| `Tailport of [ `N | `NE | `E | `SE | `S | `SW | `W | `NW ]`
19. `| `Tailurl of string`
    (*

    Url attached to tail label if output format is ismap.

    *)
20. `| `Weight of int`
    (*

    Sets the integer cost of stretching the edge. Default value is `1`.

    *)

`]`

Attributes of edges. They include all common edge attributes and several specific ones. All attributes described in the "dot User's Manual, February 4, 2002" are handled, excepted: lhead and ltail.

`type subgraph = {`

1. `sg_name : string;`
2. `sg_attributes : vertex list;`
3. `sg_parent : string option;`

`}`

Subgraphs have a name and some vertices.