sig
  type graph =
    [ `Center of bool
    | `Fontcolor of Graphviz.color
    | `Fontname of string
    | `Fontsize of int
    | `Label of string
    | `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