equal
deleted
inserted
replaced
74 Defs {consts = consts2, specified = specified2}) = |
74 Defs {consts = consts2, specified = specified2}) = |
75 let |
75 let |
76 val consts' = (consts1, consts2) |> Graph.merge_acyclic (K true) |
76 val consts' = (consts1, consts2) |> Graph.merge_acyclic (K true) |
77 handle Graph.CYCLES cycles => err_cyclic cycles; |
77 handle Graph.CYCLES cycles => err_cyclic cycles; |
78 val specified' = (specified1, specified2) |> Symtab.join (fn c => fn (orig_specs1, specs2) => |
78 val specified' = (specified1, specified2) |> Symtab.join (fn c => fn (orig_specs1, specs2) => |
79 SOME (Inttab.fold (fn spec2 => fn specs1 => |
79 Inttab.fold (fn spec2 => fn specs1 => |
80 (check_specified c spec2 orig_specs1; Inttab.update spec2 specs1)) specs2 orig_specs1)); |
80 (check_specified c spec2 orig_specs1; Inttab.update spec2 specs1)) specs2 orig_specs1); |
81 in make_defs (consts', specified') end; |
81 in make_defs (consts', specified') end; |
82 |
82 |
83 end; |
83 end; |