`type graph = [`

1. `| CommonAttributes.graph`
2. `| `Margin of float * float`
   (*

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

   *)
3. `| `Start of int`
   (*

   Seed for random number generator.

   *)
4. `| `Overlap of bool`
   (*

   Default value is `true`.

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

   `true` makes edge splines if nodes don't overlap. Default value is `false`.

   *)
6. `| `Sep of float`
   (*

   Edge spline separation factor from nodes. Default value is `0.0`.

   *)

`]`

Attributes of graphs. They include all common graph attributes and several specific ones. All attributes described in the "Neato User's manual, April 10, 2002" are handled.

`type vertex = [`

1. `| CommonAttributes.vertex`
2. `| `Pos of float * float`
   (*

   Initial coordinates of the vertex.

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

   Initial coordinates of the vertex, pinned.

   *)

`]`

Attributes of nodes. They include all common node attributes and several specific ones. All attributes described in the "Neato User's manual, April 10, 2002" are handled.

`type edge = [`

1. `| CommonAttributes.edge`
2. `| `Id of string`
   (*

   Optional value to distinguish multiple edges.

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

   Preferred length of edge. Default value is `1.0`.

   *)
4. `| `Weight of float`
   (*

   Strength of edge spring. Default value is `1.0`.

   *)

`]`

Attributes of edges. They include all common edge attributes and several specific ones. All attributes described in the "Neato User's manual, April 10, 2002" are handled.

`type subgraph = {`

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

`}`

Subgraphs have a name and some vertices.