equal
deleted
inserted
replaced
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 |