src/Pure/type_infer.ML
changeset 20076 def4ad161528
parent 19577 fdb3642feb49
child 20161 b8b1d4a380aa
equal deleted inserted replaced
20075:a7e183bfebef 20076:def4ad161528
   243     fun elim (r as ref (Param S), x) = r := mk_var (x, S)
   243     fun elim (r as ref (Param S), x) = r := mk_var (x, S)
   244       | elim _ = ();
   244       | elim _ = ();
   245 
   245 
   246     val used' = fold add_names ts (fold add_namesT Ts used);
   246     val used' = fold add_names ts (fold add_namesT Ts used);
   247     val parms = rev (fold add_parms ts (fold add_parmsT Ts []));
   247     val parms = rev (fold add_parms ts (fold add_parmsT Ts []));
   248     val names = Term.invent_names used' (prfx ^ "'a") (length parms);
   248     val names = Name.invent_list used' (prfx ^ "'a") (length parms);
   249   in
   249   in
   250     ListPair.app elim (parms, names);
   250     ListPair.app elim (parms, names);
   251     (map simple_typ_of Ts, map simple_term_of ts)
   251     (map simple_typ_of Ts, map simple_term_of ts)
   252   end;
   252   end;
   253 
   253