functor (X : GRAPH) ->
  sig
    val fold :
      'a -> (X.node -> 'a -> 'a) -> 'b -> ('a -> 'b -> 'b) -> X.graph -> 'b
    val list : X.graph -> X.node list list
    val unify : (X.node -> X.node -> unit) -> X.graph -> unit
  end