sig
  type t
  module V : Sig.COMPARABLE
  val pred : t -> V.t -> V.t list
  val succ : t -> V.t -> V.t list
  val fold_vertex : (V.t -> '-> 'a) -> t -> '-> 'a
  val iter_vertex : (V.t -> unit) -> t -> unit
  val iter_succ : (V.t -> unit) -> t -> V.t -> unit
  val nb_vertex : t -> int
  val create : ?size:int -> unit -> t
  val add_edge : t -> V.t -> V.t -> unit
end