functor
  (G : sig
         type t
         module V : Sig.COMPARABLE
         val iter_vertex : (V.t -> unit) -> t -> unit
         val iter_succ : (V.t -> unit) -> t -> V.t -> unit
         val in_degree : t -> V.t -> int
       end->
  sig
    val fold : (G.V.t -> '-> 'a) -> Topological.G.t -> '-> 'a
    val iter : (G.V.t -> unit) -> Topological.G.t -> unit
  end