sig   module type EL = sig type t val dom : Rel_list.EL.t Rel.dom end   module Make_el :     functor (V : Rel.Dom.V-> sig type t = V.t val dom : t Rel.dom end   module Make :     functor (E : EL->       sig         type t = E.t list Rel.term         type e = E.t Rel.term         val dom : E.t list Rel.dom         val empty : Rel_list.Make.t         val cons : Rel_list.Make.e -> Rel_list.Make.t -> Rel_list.Make.t         val v : E.t list -> Rel_list.Make.t         val is_empty : Rel_list.Make.t -> Rel.goal         val hd : Rel_list.Make.t -> Rel_list.Make.e -> Rel.goal         val tl : Rel_list.Make.t -> Rel_list.Make.t -> Rel.goal         val append :           Rel_list.Make.t -> Rel_list.Make.t -> Rel_list.Make.t -> Rel.goal         val rev : Rel_list.Make.t -> Rel_list.Make.t -> Rel.goal       end end