sig   type set = Vset.vset list   and vset =       Set of Lang.F.tau * Lang.F.term     | Singleton of Lang.F.term     | Range of Lang.F.term option * Lang.F.term option     | Descr of Lang.F.var list * Lang.F.term * Lang.F.pred   val tau_of_set : Lang.F.tau -> Lang.F.tau   val vars : Vset.set -> Lang.F.Vars.t   val occurs : Lang.F.var -> Vset.set -> bool   val empty : Vset.set   val singleton : Lang.F.term -> Vset.set   val range : Lang.F.term option -> Lang.F.term option -> Vset.set   val union : Vset.set -> Vset.set -> Vset.set   val inter : Lang.F.term -> Lang.F.term -> Lang.F.term   val member : Lang.F.term -> Vset.set -> Lang.F.pred   val in_size : Lang.F.term -> int -> Lang.F.pred   val in_range :     Lang.F.term -> Lang.F.term option -> Lang.F.term option -> Lang.F.pred   val sub_range :     Lang.F.term ->     Lang.F.term -> Lang.F.term option -> Lang.F.term option -> Lang.F.pred   val ordered :     limit:bool ->     strict:bool -> Lang.F.term option -> Lang.F.term option -> Lang.F.pred   val equal : Vset.set -> Vset.set -> Lang.F.pred   val subset : Vset.set -> Vset.set -> Lang.F.pred   val disjoint : Vset.set -> Vset.set -> Lang.F.pred   val concretize : Vset.set -> Lang.F.term   val bound_shift : Lang.F.term option -> Lang.F.term -> Lang.F.term option   val bound_add :     Lang.F.term option -> Lang.F.term option -> Lang.F.term option   val bound_sub :     Lang.F.term option -> Lang.F.term option -> Lang.F.term option   val pp_bound : Format.formatter -> Lang.F.term option -> unit   val pp_vset : Format.formatter -> Vset.vset -> unit   val pretty : Format.formatter -> Vset.set -> unit   val map : (Lang.F.term -> Lang.F.term) -> Vset.set -> Vset.set   val map_opp : Vset.set -> Vset.set   val lift :     (Lang.F.term -> Lang.F.term -> Lang.F.term) ->     Vset.set -> Vset.set -> Vset.set   val lift_add : Vset.set -> Vset.set -> Vset.set   val lift_sub : Vset.set -> Vset.set -> Vset.set   val descr : Vset.vset -> Lang.F.var list * Lang.F.term * Lang.F.pred end