sig   module type G =     sig       type t       val iter_vertex : (State.t -> unit) -> State_topological.G.t -> unit       val iter_succ :         (State.t -> unit) -> State_topological.G.t -> State.t -> unit       val in_degree : State_topological.G.t -> State.t -> int     end   module Make :     functor (G : G->       sig         val fold : (State.t -> '-> 'a) -> State_topological.G.t -> '-> 'a         val iter : (State.t -> unit) -> State_topological.G.t -> unit       end end