src/Pure/variable.ML
changeset 74281 7829d6435c60
parent 74266 612b7e0d6721
child 74282 c2ee8d993d6a
--- a/src/Pure/variable.ML	Thu Sep 09 23:05:33 2021 +0200
+++ b/src/Pure/variable.ML	Thu Sep 09 23:07:02 2021 +0200
@@ -590,7 +590,7 @@
 
 fun importT_inst ts ctxt =
   let
-    val tvars = build_rev (fold Term.add_tvars ts);
+    val tvars = TVars.build (fold TVars.add_tvars ts) |> TVars.list_set;
     val (tfrees, ctxt') = invent_types (map #2 tvars) ctxt;
     val instT = TVars.build (fold2 (fn a => fn b => TVars.add (a, TFree b)) tvars tfrees);
   in (instT, ctxt') end;
@@ -599,7 +599,9 @@
   let
     val ren = Name.clean #> (if is_open then I else Name.internal);
     val (instT, ctxt') = importT_inst ts ctxt;
-    val vars = map (apsnd (Term_Subst.instantiateT instT)) (build_rev (fold Term.add_vars ts));
+    val vars =
+      Vars.build (fold Vars.add_vars ts) |> Vars.list_set
+      |> map (apsnd (Term_Subst.instantiateT instT));
     val (ys, ctxt'') = variant_fixes (map (ren o #1 o #1) vars) ctxt';
     val inst = Vars.build (fold2 (fn (x, T) => fn y => Vars.add ((x, T), Free (y, T))) vars ys);
   in ((instT, inst), ctxt'') end;