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