sig
  module type GRAPH =
    sig
      type graph
      and node
      val iter_nodes :
        (Avl_closure.GRAPH.node -> unit) -> Avl_closure.GRAPH.graph -> unit
      val iter_successors :
        (Avl_closure.GRAPH.node -> unit) -> Avl_closure.GRAPH.node -> unit
      val get : Avl_closure.GRAPH.node -> int
      val set : Avl_closure.GRAPH.node -> int -> unit
    end
  module Make :
    functor (X : GRAPH->
      sig
        val fold : '-> (X.node -> X.node -> '-> 'a) -> X.graph -> 'a
      end
end