functor (G : Sig.P->
  sig
    type g = G.t
    val transitive_closure : ?reflexive:bool -> Oper.S.g -> Oper.S.g
    val add_transitive_closure : ?reflexive:bool -> Oper.S.g -> Oper.S.g
    val mirror : Oper.S.g -> Oper.S.g
    val complement : Oper.S.g -> Oper.S.g
    val intersect : Oper.S.g -> Oper.S.g -> Oper.S.g
    val union : Oper.S.g -> Oper.S.g -> Oper.S.g
  end