src/Pure/ML/ml_instantiate.ML
changeset 74605 8b7258c61649
parent 74593 66f10c877542
child 74606 40f5c6b2e8aa
--- a/src/Pure/ML/ml_instantiate.ML	Thu Oct 28 13:13:48 2021 +0200
+++ b/src/Pure/ML/ml_instantiate.ML	Thu Oct 28 13:20:45 2021 +0200
@@ -54,10 +54,10 @@
 
 local
 
-fun make_keywords ctxt =
-  Thy_Header.get_keywords' ctxt
-  |> Keyword.no_major_keywords
-  |> Keyword.add_major_keywords ["typ", "term", "prop", "ctyp", "cterm", "cprop"];
+val make_keywords =
+  Thy_Header.get_keywords'
+  #> Keyword.no_major_keywords
+  #> Keyword.add_major_keywords ["typ", "term", "prop", "ctyp", "cterm", "cprop"];
 
 val parse_inst_name = Parse.position (Parse.type_ident >> pair true || Parse.name >> pair false);
 
@@ -109,18 +109,18 @@
     NONE => error ("Not a free variable " ^ quote a ^ Position.here pos)
   | SOME v => ml (ML_Syntax.print_pair ML_Syntax.print_indexname ML_Syntax.print_typ v));
 
-fun term_env t = (Term.add_tfrees t [], Term.add_frees t []);
+fun make_env t = (Term.add_tfrees t [], Term.add_frees t []);
 
 fun prepare_insts ctxt1 ctxt0 (instT, inst) t =
   let
-    val (envT, env) = term_env t;
+    val (envT, env) = make_env t;
     val freesT = map (Logic.mk_type o TFree o get_tfree envT) instT;
     val frees = map (Free o check_free ctxt1 env) inst;
     val (t' :: varsT, vars) =
       Variable.export_terms ctxt1 ctxt0 (t :: freesT @ frees)
       |> chop (1 + length freesT);
 
-    val (envT', env') = term_env t';
+    val (envT', env') = make_env t';
     val _ = missing_instT (subtract (eq_fst op =) envT' envT) instT;
     val _ = missing_inst (subtract (eq_fst op =) env' env) inst;