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