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