equal
deleted
inserted
replaced
298 let |
298 let |
299 val (Ts_bTs', ts') = finish ctxt tye (Ts @ map snd bs, ts); |
299 val (Ts_bTs', ts') = finish ctxt tye (Ts @ map snd bs, ts); |
300 val (Ts', Ts'') = chop (length Ts) Ts_bTs'; |
300 val (Ts', Ts'') = chop (length Ts) Ts_bTs'; |
301 fun prep t = |
301 fun prep t = |
302 let val xs = rev (Term.variant_frees t (rev (map fst bs ~~ Ts''))) |
302 let val xs = rev (Term.variant_frees t (rev (map fst bs ~~ Ts''))) |
303 in Term.subst_bounds (map Syntax.mark_boundT xs, t) end; |
303 in Term.subst_bounds (map Syntax_Trans.mark_boundT xs, t) end; |
304 in (map prep ts', Ts') end; |
304 in (map prep ts', Ts') end; |
305 |
305 |
306 fun err_loose i = error ("Loose bound variable: B." ^ string_of_int i); |
306 fun err_loose i = error ("Loose bound variable: B." ^ string_of_int i); |
307 |
307 |
308 fun unif_failed msg = |
308 fun unif_failed msg = |