functor (D : DRAW) ->
  functor (G : GRAPH) ->
    sig
      type engine =
        [ `Dot of
            [ `Nodesep of int
            | `Rankdir of [ `LeftToRight | `TopToBottom]
            | `Ranksep of int] list]
      val draw_graph :
        D.window ->
        Avl_draw.Make.engine -> int -> int -> G.graph -> int * int
    end