functor
  (M : sig val union : string val empty : string val included : string end->
  sig
    val flatten : Fol.term list -> Fol.term -> Fol.term list
    val zunion : Fol.term list -> Fol.term
    val included : Fol.term -> Fol.term -> Fol.pred Bag.t
  end