equal
deleted
inserted
replaced
943 val (dts', constr_syntax, sorts', i) = Library.foldl prep_dt_spec (([], [], [], 0), dts); |
943 val (dts', constr_syntax, sorts', i) = Library.foldl prep_dt_spec (([], [], [], 0), dts); |
944 val sorts = sorts' @ (map (rpair (Sign.defaultS sign)) (tyvars \\ map fst sorts')); |
944 val sorts = sorts' @ (map (rpair (Sign.defaultS sign)) (tyvars \\ map fst sorts')); |
945 val dt_info = get_datatypes thy; |
945 val dt_info = get_datatypes thy; |
946 val (descr, _) = unfold_datatypes sign dts' sorts dt_info dts' i; |
946 val (descr, _) = unfold_datatypes sign dts' sorts dt_info dts' i; |
947 val _ = check_nonempty descr handle (exn as Datatype_Empty s) => |
947 val _ = check_nonempty descr handle (exn as Datatype_Empty s) => |
948 if err then error ("NONEmptiness check failed for datatype " ^ s) |
948 if err then error ("Nonemptiness check failed for datatype " ^ s) |
949 else raise exn; |
949 else raise exn; |
950 |
950 |
951 val descr' = List.concat descr; |
951 val descr' = List.concat descr; |
952 val case_names_induct = mk_case_names_induct descr'; |
952 val case_names_induct = mk_case_names_induct descr'; |
953 val case_names_exhausts = mk_case_names_exhausts descr' (map #1 new_dts); |
953 val case_names_exhausts = mk_case_names_exhausts descr' (map #1 new_dts); |