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