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