sig
  type graph =
      [ `Center of bool
      | `Fontcolor of Graphviz.color
      | `Fontname of string
      | `Fontsize of int
      | `HtmlLabel of string
      | `Label of string
      | `Margin of float * float
      | `OrderingOut
      | `Orientation of [ `Landscape | `Portrait ]
      | `Overlap of bool
      | `Page of float * float
      | `Pagedir of [ `LeftToRight | `TopToBottom ]
      | `Sep of float
      | `Size of float * float
      | `Spline of bool
      | `Start of int ]
  type vertex =
      [ `Color of Graphviz.color
      | `ColorWithTransparency of Graphviz.color_with_transparency
      | `Fontcolor of Graphviz.color
      | `Fontname of string
      | `Fontsize of int
      | `Height of float
      | `HtmlLabel of string
      | `Label of string
      | `Orientation of float
      | `Penwidth of float
      | `Peripheries of int
      | `Pos of float * float
      | `Regular of bool
      | `Shape of
          [ `Assembly
          | `Box
          | `Box3d
          | `Cds
          | `Circle
          | `Component
          | `Diamond
          | `Doublecircle
          | `Doubleoctagon
          | `Egg
          | `Ellipse
          | `Fivepoverhang
          | `Folder
          | `House
          | `Insulator
          | `Invhouse
          | `Invtrapezium
          | `Invtriangle
          | `Larrow
          | `Lpromoter
          | `Mcircle
          | `Mdiamond
          | `Msquare
          | `Note
          | `Noverhang
          | `Oval
          | `Parallelogram
          | `Plaintext
          | `Polygon of int * float
          | `Primersite
          | `Promoter
          | `Proteasesite
          | `Proteinstab
          | `Rarrow
          | `Record
          | `Restrictionsite
          | `Ribosite
          | `Rnastab
          | `Rpromoter
          | `Signature
          | `Star
          | `Tab
          | `Terminator
          | `Threepoverhang
          | `Trapezium
          | `Triangle
          | `Tripleoctagon
          | `Underline
          | `Utr ]
      | `Style of
          [ `Bold | `Dashed | `Dotted | `Filled | `Invis | `Rounded | `Solid ]
      | `Width of float ]
  type edge =
      [ `Color of Graphviz.color
      | `ColorWithTransparency of Graphviz.color_with_transparency
      | `Decorate of bool
      | `Dir of [ `Back | `Both | `Forward | `None ]
      | `Fontcolor of Graphviz.color
      | `Fontname of string
      | `Fontsize of int
      | `HtmlLabel of string
      | `Id of string
      | `Label of string
      | `Labelfontcolor of Graphviz.color
      | `Labelfontname of string
      | `Labelfontsize of int
      | `Len of float
      | `Penwidth of float
      | `Style of [ `Bold | `Dashed | `Dotted | `Invis | `Solid ]
      | `Weight of float ]
  type subgraph = {
    sg_name : string;
    sg_attributes : Graphviz.NeatoAttributes.vertex list;
    sg_parent : string option;
  }
end