functor (G : Graph.Sig.I->
  sig
    val transitive_reduction : G.t -> unit
    module O :
      sig
        type g = G.t
        val transitive_closure : ?reflexive:bool -> g -> g
        val add_transitive_closure : ?reflexive:bool -> g -> g
        val mirror : g -> g
        val complement : g -> g
        val intersect : g -> g -> g
        val union : g -> g -> g
      end
  end