sig   type 'a t = 'Rel.dom   val v :     ?name:string ->     ?pp:(Format.formatter -> '-> unit) ->     ?equal:('-> '-> bool) -> unit -> 'Rel.dom   module type V =     sig       type t       val equal : Rel.Dom.V.t -> Rel.Dom.V.t -> bool       val pp : Format.formatter -> Rel.Dom.V.t -> unit     end   val of_type : (module Rel.Dom.V with type t = 'a) -> 'Rel.Dom.t   val with_dom :     ?name:string ->     ?pp:(Format.formatter -> '-> unit) -> 'Rel.dom -> 'Rel.dom   val name : 'Rel.dom -> string   val pp_value : 'Rel.dom -> Format.formatter -> '-> unit   val equal_value : 'Rel.dom -> '-> '-> bool   val equal : 'Rel.dom -> 'Rel.dom -> bool   val pp : Format.formatter -> 'Rel.dom -> unit   val unit : unit Rel.dom   val bool : bool Rel.dom   val int : int Rel.dom   val float : float Rel.dom   val string : string Rel.dom   val pair : 'Rel.dom -> 'Rel.dom -> ('a * 'b) Rel.dom   val list : 'Rel.dom -> 'a list Rel.dom end