equal
deleted
inserted
replaced
572 of SOME class => [TFree (Name.aT, [class])] |
572 of SOME class => [TFree (Name.aT, [class])] |
573 | NONE => Name.invent_list [] Name.aT (length tvars) |
573 | NONE => Name.invent_list [] Name.aT (length tvars) |
574 |> map (fn v => TFree (v, [])); |
574 |> map (fn v => TFree (v, [])); |
575 val ty = typ_subst_TVars (tvars ~~ tvars') raw_ty; |
575 val ty = typ_subst_TVars (tvars ~~ tvars') raw_ty; |
576 in raw_typscheme thy (c, ty) end |
576 in raw_typscheme thy (c, ty) end |
577 | typscheme_eqns thy c (thms as thm :: _) = typscheme_eqn thy thm; |
577 | typscheme_eqns thy c (thm :: _) = typscheme_eqn thy thm; |
578 |
578 |
579 fun assert_eqns_const thy c eqns = |
579 fun assert_eqns_const thy c eqns = |
580 let |
580 let |
581 fun cert (eqn as (thm, _)) = if c = const_eqn thy thm |
581 fun cert (eqn as (thm, _)) = if c = const_eqn thy thm |
582 then eqn else error ("Wrong head of code equation,\nexpected constant " |
582 then eqn else error ("Wrong head of code equation,\nexpected constant " |