functor (E : Tools.Base->
  sig
    type elt = E.t
    type t
    val empty : Relation.Make.t
    val id : Relation.Make.elt list -> Relation.Make.t
    val equal : Relation.Make.t -> Relation.Make.t -> bool
    val compare : Relation.Make.t -> Relation.Make.t -> int
    val succ : Relation.Make.elt -> Relation.Make.t -> Relation.Make.elt list
    val restr : Relation.Make.elt list -> Relation.Make.t -> Relation.Make.t
    val inser :
      Relation.Make.elt * Relation.Make.elt ->
      Relation.Make.t -> Relation.Make.t
    val mem :
      Relation.Make.elt * Relation.Make.elt -> Relation.Make.t -> bool
    val map :
      (Relation.Make.elt * Relation.Make.elt ->
       Relation.Make.elt * Relation.Make.elt) ->
      Relation.Make.t -> Relation.Make.t
    val fold :
      (Relation.Make.elt * Relation.Make.elt -> '-> 'a) ->
      Relation.Make.t -> '-> 'a
    val to_list :
      Relation.Make.t -> (Relation.Make.elt * Relation.Make.elt) list
    val concatenation : Relation.Make.t -> Relation.Make.t -> Relation.Make.t
    val union : Relation.Make.t -> Relation.Make.t -> Relation.Make.t
    val refl : Relation.Make.elt list -> Relation.Make.t -> Relation.Make.t
    val etoile : Relation.Make.elt list -> Relation.Make.t -> Relation.Make.t
  end