sig
  type graph =
      [ `Center of bool
      | `Fontcolor of Graphviz.color
      | `Fontname of string
      | `Fontsize of int
      | `Label of string
      | `OrderingOut
      | `Orientation of [ `Landscape | `Portrait ]
      | `Page of float * float
      | `Pagedir of [ `LeftToRight | `TopToBottom ]
      | `Size of float * float ]
  type vertex =
      [ `Color of Graphviz.color
      | `Fontcolor of Graphviz.color
      | `Fontname of string
      | `Fontsize of int
      | `Height of float
      | `Label of string
      | `Orientation of float
      | `Peripheries of int
      | `Regular of bool
      | `Shape of
          [ `Box
          | `Circle
          | `Diamond
          | `Doublecircle
          | `Ellipse
          | `Plaintext
          | `Polygon of int * float
          | `Record ]
      | `Style of [ `Bold | `Dashed | `Dotted | `Filled | `Invis | `Solid ]
      | `Width of float ]
  type edge =
      [ `Color of Graphviz.color
      | `Decorate of bool
      | `Dir of [ `Back | `Both | `Forward | `None ]
      | `Fontcolor of Graphviz.color
      | `Fontname of string
      | `Fontsize of int
      | `Label of string
      | `Labelfontcolor of Graphviz.color
      | `Labelfontname of string
      | `Labelfontsize of int
      | `Style of [ `Bold | `Dashed | `Dotted | `Invis | `Solid ] ]
end